@alexkst

Как удалить дубликаты из бд размером больше 200 млн записей?

таблица больше 200 млн записей, некоторые дублируются.
id | parent | parent_id | value
Как лучше их удалять? Использовать временную таблицу или одним запросом?
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
Viji
@Viji
Associate DevOps Engineer
Найти дубликаты:
Select identField1, identField2, count(*) FROM yourTable
GROUP BY identField1, identField2
HAVING count(*) >1


если работает, то удалить через subquery:
DELETE FROM yourTable WHERE field in (Select identField1, identField2, count(*) FROM yourTable
GROUP BY identField1, identField2
HAVING count(*) >1 )
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
Не проще отслеживать уникальность когда вставляете??? Либо по уник ключу и инсерт игноре, либо выборка + вставка по пустому результату.

PS: parent | parent_id - чем отличается???
Ответ написан
Ваш ответ на вопрос

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

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