Mam dość duży stół z 19 000 000 rekordów i mam problem z duplikatami wierszy. W SO istnieje wiele podobnych pytań, ale żaden z nich nie wydaje mi się zadowalającej odpowiedzi. Niektóre punkty do rozważenia:Usuwanie duplikatów z dużej tabeli
- wyjątkowość Row jest określana przez dwie kolumny,
location_id
idatetime
. - Chciałbym, aby czas wykonania był jak najszybszy (< 1 godzina).
- Kopiowanie tabel nie jest wykonalne, ponieważ tabela ma kilka gigabajtów.
- Nie musisz się martwić o relacje.
Jak powiedział, każdy location_id
może mieć tylko jeden odrębny datetime
, i chciałbym, aby usunąć wszystkie duplikaty instancji. Nie ma znaczenia, który z nich przetrwa, ponieważ dane są identyczne.
Wszelkie pomysły?
Rozważ usunięcie tymczasowo indeksów, wyzwalaczy, jeśli istnieje. – Pentium10
Co było nie tak z podejściem podanym na http://stackoverflow.com/questions/1585412/sql-to-delete-duplicate-records-inable-able? – Mike
@ Pentium10, dobry punkt, może przyspieszyć rzeczy, ale może również zabić wydajność, jeśli przejdę przez rozwiązanie podkwerendy. –