Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL szybko usuwa duplikaty z dużej bazy danych

Wierzę, że to wystarczy, używając zduplikowanego klawisza + 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;

Powinna być znacznie szybsza niż wszystko, co wymaga grupowania według, rozróżniania lub podzapytania, a nawet porządkowania według. Nie wymaga to nawet sortowania plików, co może obniżyć wydajność dużej tabeli tymczasowej. Nadal będzie wymagał pełnego skanowania oryginalnego stołu, ale nie da się tego uniknąć.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_REPLACE() – Zamień wartości w dokumencie JSON w MySQL

  2. Emotikony iPhone'a wstawiają się do MySQL, ale stają się pustą wartością

  3. Rozwiązywanie problemu awarii łącza komunikacyjnego za pomocą JDBC i MySQL

  4. Kod błędu MySQL:1175 podczas UPDATE w MySQL Workbench

  5. Zapytanie SQL zwraca dane z wielu tabel