Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL supprime rapidement les doublons d'une grande base de données

Je crois que cela le fera, en utilisant sur la clé en double + ifnull() :

create table tmp like yourtable;

alter table tmp add unique (text1, text2);

insert into tmp select * from yourtable 
    on duplicate key update text3=ifnull(text3, values(text3));

rename table yourtable to deleteme, tmp to yourtable;

drop table deleteme;

Devrait être beaucoup plus rapide que tout ce qui nécessite group by ou distinct ou une sous-requête, ou même order by. Cela ne nécessite même pas de tri de fichiers, ce qui va tuer les performances sur une grande table temporaire. Nécessitera toujours une analyse complète sur la table d'origine, mais il n'y a pas moyen d'éviter cela.