sql >> Databáze >  >> RDS >> Mysql

MySQL rychle odstraňuje duplikáty z velké databáze

Věřím, že to uděláte pomocí on duplicate key + 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;

Mělo by to být mnohem rychlejší než cokoli, co vyžaduje seskupení podle nebo rozlišení nebo poddotaz, nebo dokonce řazení podle. To ani nevyžaduje řazení souborů, které zabije výkon na velké dočasné tabulce. Stále bude vyžadovat úplné naskenování původní tabulky, ale tomu se nelze vyhnout.



  1. Jak získat dotaz na atributy sloupců z názvu tabulky pomocí PostgreSQL?

  2. Jaká je velikost sloupce int(11) v mysql v bajtech?

  3. zabezpečení vláken postgresql pro dočasné tabulky

  4. Proč došlo k selhání databáze MySQL? Získejte přehled s novým rámcem MySQL Freeze Frame