Сделано в Раскрутке

Архив эхоконференции RU.PHP

- RU.PHP ------------------------------------------------------------- RU.PHP -
 Msg  : #12048 [566]
 От   : Viktor Kudlak                 2:5030/1374         06 января 05, 08:35
 Кому : Anton Toporow                                     10 января 05, 21:20
 Тема : Re: Подаскажите наиболее оптимальный...
-------------------------------------------------------------------------------
Доброго времени суток вам, Anton!


 AT> Подскажите наиболее оптимальный алгоритм поиска одинаковых
 AT> записей в MySQL таблице и их удаление...

 AT> дублирующихся записей может быть много... как быть...
 AT> данный момент записей 30 000 тыс
 AT> но видимо возрастет до 300 000 и более
 AT> данные переодически обновляються и надо каждый раз пробекать все на
 AT> предмет поиска дублирующи записей...

1. CREATE TABLE `tmp` (
    [Полная копия структуры предыдущей таблицы]
   )
Может можно скопировать как-то структуру через ALTER TABLE, но здесь я не
силен...
2. INSERT INTO `tmp` SELECT * FROM `tbl` WHERE 1 GROUP BY `повторяющееся поле`
Если у тебя поле AUTO INCRIMENT, то нужно убрать id (хотя не обязательно),
указав в INTO `tmp` ([имена полей]) и в запросе SELECT указать те же поля в той
же последовательности..
3. ALTER TABLE `tbl` RENAME `old`
4. ALTER TABLE `tmp` RENAME `tbl`

 AT> p.s
 AT> если всю логику повесить на php то не укладываемся в 30 сек...
 AT> а крон не выход так как должно работать не токо под Unix
 AT> но и локально под Вынь

set_time_limit(0); // по дефолту 30, 0 - отрубает..

 AT> Можноли решить и как решить SQL запросами... или как там луче =)
Подобные примеры есть в русской документации на MySQL
(http://www.mysql.com/docs/)



Всего доброго...                                                 06 Янв 05 года
-------------------------------------------------------------------------------
... http://meganet.org.ru (MEGAnet<пся>NWGSM.ru) ICQ:128235544
--- GoldED+/386 1.1.5  /  HPT 1.4.0-sta  /  KittenMail 0.11.1f4a6.W32
 * Origin: MEGA Station +7-(812)-445-3253 00  -08   (2:5030/1374)


При переходе по баннеру - скидка 25% на первый месяц обслуживания!
Самый простой способ получить ROOT-доступ
При переходе по баннеру - скидка 25% на первый месяц обслуживания!