sql >> Database teknologi >  >> RDS >> Mysql

Hvordan fortolker MySQL VARCHAR-feltstørrelsen?

En VARCHAR(255) kan gemme op til 255 tegn, uanset antallet af bytes pr. tegn, der kræves af tegnsætkodningen.

Lagringskravet er længden af ​​de faktisk lagrede data (ikke maksimum), plus 1 eller 2 bytes til at gemme længden af ​​dataene -- 1 byte bruges, medmindre den maksimalt mulige længde i bytes> 255... så en VARCHAR(255) COLLATE utf8mb4 bruger 2 bytes til at gemme længden, mens en VARCHAR(255) COLLATE ascii_general_ci bruger 1 byte til at gemme længden. Hver kolonne kan ikke gemme mere end 255 tegn.

Angiv kolonnestørrelsen som passende for de data, der lagres. Brug af 255 er almindeligt, men normalt et rødt flag med sjusket design, da det er sjældent, at denne særlige værdi på en meningsfuld måde repræsenterer den maksimale passende længde af en kolonne.

Derimod en CHAR(255) COLLATE utf8mb4 bruger altid 255 × 4 (det maksimalt mulige) bytes pr. kolonne pr. række og 0 bytes for at gemme længden, da den lagrede længde ikke varierer. Disse kolonner er sjældent passende, undtagen når kolonnen altid har en kendt længde, og tegnsættet er single-byte, såsom en UUID, som ville være CHAR(36) COLLATE ascii_general_ci .

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



  1. Hvordan kan jeg ændre eksisterende kolonne som identitet i PostgreSQL 11.1

  2. Postgresql-funktionen returnerer sammensat - hvordan får jeg adgang til sammensatte værdier som separate kolonner?

  3. Kontroller, om kolonne/nøgle findes?

  4. MYSQL:Find start- og sluttidsstempel for en fortløbende optælling