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

Jak MySQL interpretuje rozmiar pola VARCHAR?

VARCHAR(255) może przechowywać do 255 znaków, niezależnie od liczby bajtów na znak wymaganej przez kodowanie zestawu znaków.

Wymóg przechowywania to długość faktycznie przechowywanych danych (nie maksymalna) plus 1 lub 2 bajty do przechowywania długości danych -- 1 bajt jest używany, chyba że maksymalna możliwa długość w bajtach> 255... więc VARCHAR(255) COLLATE utf8mb4 używa 2 bajtów do przechowywania długości, podczas gdy VARCHAR(255) COLLATE ascii_general_ci wykorzystuje 1 bajt do przechowywania długości. Każda kolumna może przechowywać nie więcej niż 255 znaków.

Zadeklaruj rozmiar kolumny odpowiedni dla przechowywanych danych. Używanie 255 jest powszechne, ale zwykle jest to czerwona flaga niechlujnego projektu, ponieważ rzadko kiedy ta konkretna wartość w znaczący sposób reprezentuje maksymalną odpowiednią długość kolumny.

Natomiast CHAR(255) COLLATE utf8mb4 zawsze zużywa 255 × 4 (maksymalnie możliwe) bajty na kolumnę na wiersz i 0 bajtów do przechowywania długości, ponieważ przechowywana długość nie zmienia się. Te kolumny rzadko są odpowiednie, z wyjątkiem sytuacji, gdy kolumna ma zawsze znaną długość, a zestaw znaków jest jednobajtowy, na przykład UUID, który byłby CHAR(36) COLLATE ascii_general_ci .

https:// /dev.mysql.com/doc/refman/5.7/en/storage-requirements.html#data-types-storage-reqs-strings



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Wybierz N wierszy, ale tylko z unikalnymi wartościami w jednej kolumnie

  2. jak pobrać dane z trzech lub więcej tabel?

  3. percentyl według COUNT(DISTINCT) ze skorelowanym WHERE działa tylko z widokiem (lub bez DISTINCT)

  4. Zapytanie do tabeli na podstawie wartości z tej tabeli

  5. Podziel zapytania mysql w tablicy, każde zapytanie oddzielone;