Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL бързо премахва дубликати от голяма база данни

Вярвам, че това ще го направи, използвайки дублиран ключ + 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;

Трябва да е много по-бързо от всичко, което изисква групиране по или отделно, или подзаявка, или дори подреждане по. Това дори не изисква сортиране на файлове, което ще убие производителността на голяма временна таблица. Все пак ще е необходимо пълно сканиране на оригиналната таблица, но това не може да се избегне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да се свържа с MySQL в Python 3 на Windows?

  2. MySQL високо използване на процесора

  3. Кой тип данни на MySQL да използвате за съхранение на булеви стойности

  4. Завършете урока за Soft Delete &Restore Laravel 8 за изтрити записи

  5. Как да нулирате/промените MySql root парола на командния ред в ubuntu linux