MySQL Query все еще выполняется через день ..? - PullRequest
1 голос
/ 01 июня 2010

Я пытаюсь выделить дубликаты в базе данных объемом 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 Ответ

1 голос
/ 01 июня 2010

Вы можете сделать это:

alter ignore table items add unique index(title); 

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

...