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

Jeśli masz pole TEKSTOWE w MySQL lub PostgreSQL, czy powinieneś umieścić je w osobnej tabeli?

Nie z PostgreSQL, z podręcznika :

Tak więc kolumna z dużymi znakami (taka jak TEXT lub VARCHAR bez określonego limitu rozmiaru) jest przechowywany z dala od danych tabeli głównej. Tak więc PostgreSQL ma wbudowaną optymalizację typu "umieść to w oddzielnej tabeli". Jeśli używasz PostgreSQL, ułóż tabelę rozsądnie i pozostaw układ danych dla PostgreSQL.

Nie wiem, jak MySQL lub inne RDBM porządkują swoje dane.

Powodem tej optymalizacji jest to, że baza danych zwykle przechowuje dane dla każdego wiersza w ciągłych blokach na dysku, aby ograniczyć wyszukiwanie, kiedy wiersz musi zostać odczytany lub zaktualizowany. Jeśli masz kolumnę TEKST (lub inny typ o zmiennej długości) w wierszu, rozmiar wiersza jest zmienny, więc potrzeba więcej pracy, aby przejść od wiersza do wiersza. Analogią byłaby różnica między dostępem do czegoś na połączonej liście a dostępem do tablicy; z połączoną listą, musisz przeczytać trzy elementy pojedynczo, aby dostać się do czwartego, z tablicą, którą właśnie przesuniesz 3 * element_size bajtów od początku i jesteś tam w jednym kroku.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuń używając wielu tabel i powtórz tabelę w podzapytaniu

  2. MySQL Workbench Error 1175 Nawet z instrukcją Where

  3. Laravel Eloquent with()-> zwracający wartość null

  4. Jaki jest maksymalny rozmiar zapytania dla mysql?

  5. połącz się z lokalnym serwerem MySQL przez gniazdo