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

Jaki jest najbardziej kompaktowy sposób przechowywania różnic w bazie danych?

Dużo łatwiej jest przechowywać każdy rekord w całości niż przechowywać jego pliki różnicowe. Następnie, jeśli chcesz porównać dwie wersje, możesz wygenerować jedną w razie potrzeby, używając kodu PECL> Text_Diff biblioteka .

Lubię przechowywać wszystkie wersje rekordu w jednej tabeli i pobierać najnowszą za pomocą MAX(revision) , „bieżący” atrybut logiczny lub podobny. Inni wolą denormalizować i mieć tabelę lustrzaną, która przechowuje nieaktualne wersje.

Jeśli zamiast tego przechowujesz różnice, Twój schemat i algorytmy stają się znacznie bardziej złożone. Następnie musisz przechowywać co najmniej jedną „pełną” wersję i wiele wersji „diff”, a także zrekonstruować pełną wersję z zestawu różnic, gdy tylko potrzebujesz pełnej wersji. (W ten sposób SVN przechowuje rzeczy. Git przechowuje pełną kopię każdej wersji, a nie różnice.)

Czas programisty jest drogi, ale miejsce na dysku jest zwykle tanie. Zastanów się, czy przechowywanie każdej wersji w całości nie stanowi problemu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hooki nie wyzwalają się podczas wstawiania nieprzetworzonych zapytań przez sequelize.query()

  2. Wzory do obliczania odległości geograficznej

  3. Funkcja opóźnień/leadów MySQL?

  4. nie można uzyskać dostępu do mysql z wiersza poleceń mac

  5. Konfiguracja Solr DataImportHandler