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

diff 2 големи таблици на база данни

Разгледайте Percona Toolkit с отворен код ---по-специално pt-table-sync полезност.

Основната му цел е да синхронизира MySQL таблица с нейната реплика, но тъй като нейният изход е наборът от MySQL команди, необходими за съгласуване на разликите между две таблици, това е естествено подходящо за сравняване на двете.

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

Това обаче ви стига само до част от пътя. Тъй като генерираните команди са предназначени да синхронизират реплика с главния, те просто заместват текущото съдържание на репликата за всички различни записи. С други думи, генерираните команди променят all полета в записа (не само тези, които са се променили). Така че след като използвате pt-table-sync за да намерите разликите, ще трябва да опаковате резултатите в нещо, за да изследвате различните записи чрез сравняване на всяко поле в записа.

Но pt-table-sync прави това, което вече знаете, че е трудната част:откриване на разлики, наистина бърз. Написано е на Perl; източникът трябва да предоставя добри галета.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Връщане на празни редове в клауза GROUP BY

  2. Неправилна десетична (целочислена) стойност:' ' mySQL

  3. PHP Openssl декриптира AES Mysql криптиране

  4. (има нужда от съвет) Говорете с базата данни на MySQL сървъра от моето приложение за Android

  5. Не мога да намеря грешката в моя php скрипт