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

Ostateczny koszmar dotyczący starszych baz danych MySQL

Nie jestem osobą MySQL, więc to wychodzi z lewego pola.

Ale myślę, że pliki dziennika mogą być odpowiedzią.

Na szczęście naprawdę musisz wiedzieć tylko 2 rzeczy z dziennika.

Potrzebujesz rekordu/rowidu i potrzebujesz operacji.

W większości baz danych, zakładam MySQL, w każdym wierszu znajduje się niejawna kolumna, taka jak rowid lub recordid, lub cokolwiek innego. Jest to wewnętrzny numer wiersza używany przez bazę danych. To jest Twój „bezpłatny” klucz podstawowy.

Następnie potrzebujesz operacji. Zwłaszcza, czy jest to operacja wstawiania, aktualizacji lub usuwania w wierszu.

Konsolidujesz wszystkie te informacje w kolejności czasowej, a następnie przeglądasz je.

Dla każdego wstawienia/aktualizacji wybierasz wiersz z oryginalnej bazy danych i wstawiasz/aktualizujesz ten wiersz w docelowej bazie danych. Jeśli jest to usunięcie, usuwasz wiersz.

Nie dbasz o wartości pól, one po prostu nie są ważne. Zrób cały rząd.

Miejmy nadzieję, że nie będziesz musiał „parsować” binarnych plików dziennika, MySQL musi już mieć procedury, aby to zrobić, wystarczy znaleźć i dowiedzieć się, jak ich używać (może być nawet przydatne narzędzie do „zrzutu dziennika”, którego możesz użyć ).

Dzięki temu system jest dość prosty i powinien zależeć tylko od rzeczywistej aktywności w ciągu dnia, a nie od całkowitego rozmiaru bazy danych. Wreszcie możesz później zoptymalizować go, czyniąc go „mądrzejszym”. Na przykład, być może wstawiają wiersz, a następnie aktualizują go, a następnie usuwają. Wiesz, że możesz po prostu zignorować ten wiersz w swojej powtórce.

Oczywiście wymaga to trochę wiedzy tajemnej, aby faktycznie odczytać pliki dziennika, ale reszta powinna być prosta. Chciałbym myśleć, że pliki dziennika są również opatrzone znacznikiem czasu, dzięki czemu możesz pracować z wierszami „od dzisiaj” lub w dowolnym zakresie dat.



  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ć OdbcParameter dla MySQL?

  2. mysql FULLTEXT wyszukuj wiele słów

  3. Jak połączyć wiele kolumn w jedną i sformatować za pomocą niestandardowych ciągów?

  4. jak obejść BŁĄD 1045 (28000):Odmowa dostępu dla użytkownika 'ODBC'@'localhost' (przy użyciu hasła:NIE) na stałe

  5. Sumowanie zakresu dat bez zliczania nakładania się w mysql