doublench21
@doublench21

Как удалить дубликаты в таблице MySql на 29 миллионов строк?

Каким запросом у меня не встанет система при такой операции ?
  • Вопрос задан
  • 657 просмотров
Решения вопроса 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Если есть возможность остановить запись/изменение таблицы - наиболее быстрым методом будет следующая схема.

1.
Создаем новую таблицу table2 со структурой аналогичной исходной table1.

2.
insert into table2 (select distinct ... from table 1);
в случае если структура сложная - можно вместо distinct использовать group by

3.
drop table1;

4.
Переименовываем table2 в table1;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@art_karetnikov
Лучший мой проект: Мобильный банк Сбербанка РФ.
Я бы не стал на вашем месте удалять из таблицы ничего. А просто создал бы новую, уже без дублей. В плане потребления ресурсов - оно значительно экономней будет. И никто не мешает сделать так:
1. Первые сто тысяч отобрал, запомнить id последней записи.
2 .Пауза.
3. Отобрал следующие сто тысяч начиная с последнего айди. Гоу ту пункт два.

Все.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы