Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como o MySQL interpreta o tamanho do campo VARCHAR?


Um VARCHAR(255) pode armazenar até 255 caracteres, independentemente do número de bytes por caractere exigido pela codificação do conjunto de caracteres.

O requisito de armazenamento é o comprimento dos dados reais armazenados (não o máximo), mais 1 ou 2 bytes para armazenar o comprimento dos dados -- 1 byte é usado a menos que o comprimento máximo possível em bytes> 255... código>VARCHAR(255) COLLATE utf8mb4 usa 2 bytes para armazenar o comprimento, enquanto um VARCHAR(255) COLLATE ascii_general_ci usa 1 byte para armazenar o comprimento. Qualquer coluna pode armazenar no máximo 255 caracteres.

Declare o tamanho da coluna conforme apropriado para os dados armazenados. Usar 255 é comum, mas geralmente uma bandeira vermelha de design desleixado, pois é raro que esse valor específico represente significativamente o comprimento máximo apropriado de uma coluna.

Por outro lado, um CHAR(255) COLLATE utf8mb4 sempre consome 255 × 4 (o máximo possível) bytes por coluna por linha e 0 bytes para armazenar o comprimento, pois o comprimento armazenado não varia. Essas colunas raramente são apropriadas, exceto quando a coluna tem sempre um comprimento conhecido e o conjunto de caracteres é de byte único, como um UUID, que seria CHAR(36) COLLATE ascii_general_ci .

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