1 (17.12.2013 11:33:55 отредактировано skyinfo)

Задача, удалить дубликаты по столбцу

вешаю сервак запросами.
таблица 121 тыс. строк

вешается так

DELETE c2 
  FROM av_url_alias c2 
   JOIN 
   (SELECT query, MAX(url_alias_id) AS maxid 
     FROM `av_url_alias` c1
     GROUP BY query
     HAVING  COUNT(*) > 1
    ) AS lim
      ON (c2.query) = (lim.query) AND c2.url_alias_id < maxid;

и так

delete from t using av_url_alias t, av_url_alias t2 where t.url_alias_id > t2.url_alias_id and t.query = t2.query;

CPU: Xeon E5-2630 8 ядер
ОЗУ: 16 гигов

вешает одно ядро насмерть, помогает рестарт mysql либо kill
mysql не умеет паралелить задачи
пробывал
thread_concurrency     = 16
innodb_thread_concurrency = 16
без толку.

как быть, скрипт писать?

Оп оп отдыхаем хорошо...

2

в порядке дилетантской  идеи: на query есть индекс?

95% процентов проблем находятся между клавиатурой и стулом.