- 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% на первый месяц обслуживания! При переходе по баннеру - скидка 25% на первый месяц обслуживания!