MySQL Query все еще выполняется через день..?
Я пытаюсь выделить дубликаты в базе данных объемом 500 МБ и пробовал два способа сделать это. Один создает новую таблицу и группирует:
CREATE TABLE test_table as
SELECT * FROM items WHERE 1 GROUP BY title;
Но он работает в течение часа и в MySQL Admin говорит, что статус заблокирован.
Другой способ, которым я пытался, был удалить дубликаты с этим:
DELETE bad_rows.*
from items as bad_rows
inner join (
select post_title, MIN(id) as min_id
from items
group by title
having count(*) > 1
) as good_rows on good_rows.post_title = bad_rows.post_title;
... и это работает уже 24 часа, администратор сказал мне, что это отправка данных...
Как вы думаете, или эти запросы на самом деле все еще работают? Как я могу узнать, зависло ли оно? (с Apple OS X 10.5.7)
1 ответ
Решение
Вы можете сделать это:
alter ignore table items add unique index(title);
Это добавит уникальный индекс и в то же время удалит все дубликаты, что предотвратит появление любых дубликатов в будущем. Убедитесь, что вы делаете резервную копию перед запуском этой команды.