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); 

Это добавит уникальный индекс и в то же время удалит все дубликаты, что предотвратит появление любых дубликатов в будущем. Убедитесь, что вы делаете резервную копию перед запуском этой команды.

Другие вопросы по тегам