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

diff 2 duże tabele bazy danych

Zapoznaj się z zestawem narzędzi Percona Toolkit o otwartym kodzie źródłowym — w szczególności pt-table-sync pożytek.

Jego głównym celem jest synchronizacja tabeli MySQL z jej repliką, ale ponieważ jej wynikiem jest zestaw poleceń MySQL niezbędnych do pogodzenia różnic między dwiema tabelami, jest to naturalne dopasowanie do porównania tych dwóch.

To, co faktycznie robi pod maską, jest nieco skomplikowane i faktycznie wykorzystuje różne podejścia w zależności od tego, co może powiedzieć o twoich tabelach (indeksach itp.), ale jedną z podstawowych idei jest to, że robi szybkie sumy kontrolne CRC32 na fragmentach indeksów , a jeśli sumy kontrolne się nie zgadzają, dokładniej sprawdza te rekordy. Pamiętaj, że ta metoda to dużo szybciej niż chodzenie po obu indeksach liniowo i porównywanie ich.

Jednak to tylko pomaga. Ponieważ wygenerowane polecenia mają na celu zsynchronizowanie repliki z jej wzorcem, po prostu zastępują bieżącą zawartość repliki dla wszystkich różnych rekordów. Innymi słowy, wygenerowane polecenia modyfikują all pola w rekordzie (nie tylko te, które uległy zmianie). Więc kiedy użyjesz pt-table-sync aby znaleźć różnice, musiałbyś zawinąć wyniki w coś, aby zbadać różniące się rekordy, porównując każde pole w rekordzie.

Ale pt-table-sync robi to, co już wiesz, że jest trudne:wykrywanie różnic, naprawdę szybki. Jest napisany w Perlu; źródło powinno zapewniać dobrą bułkę tartą.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać wstawiania w konstruktorze zapytań wstawiać wiele rekordów?

  2. Jak możemy znaleźć nazwę domeny za pomocą MySQL i wyrażenia regularnego

  3. Błąd podczas ładowania modułu MySQLdb „Czy zainstalowałeś mysqlclient lub MySQL-python?”

  4. codeigniter aktywny rekord pobierz zapytanie i zapytanie bez klauzuli LIMIT

  5. Wstaw wiele elementów do jednego identyfikatora MySQL z pola wyboru wejściowego formularza PHP