As exigências de armazenamento para cada um dos tipos de colunas suportados pelo MySQL estão listados por categoria.
Exigências de armazenamento para tipos numéricos
Tipo da coluna | Tamanho exigido |
TINYINT |
1 byte |
SMALLINT |
2 bytes |
MEDIUMINT |
3 bytes |
INT |
4 bytes |
INTEGER |
4 bytes |
BIGINT |
8 bytes |
FLOAT(X) |
4 se X <= 24 ou 8 se 25 <= X <= 53 |
FLOAT |
4 bytes |
DOUBLE |
8 bytes |
DOUBLE PRECISION |
8 bytes |
REAL |
8 bytes |
DECIMAL(M,D) |
M+2 bytes se D > 0, M+1 bytes
se D = 0 (D +2, se M <
D ) |
NUMERIC(M,D) |
M+2 bytes se D > 0, M+1 bytes
se D = 0 (D +2, se M <
D ) |
Exigência de armazenamento para tipos data e hora
Tipo de coluna | Tamanho exigido |
DATE |
3 bytes |
DATETIME |
8 bytes |
TIMESTAMP |
4 bytes |
TIME |
3 bytes |
YEAR |
1 byte |
Exigência de armazenamento para tipos string
Tipo de coluna | Tamanho exigido |
CHAR(M) |
M bytes, 1 <= M <= 255
|
VARCHAR(M) |
L +1 bytes, onde L <= M e
1 <= M <= 255
|
TINYBLOB , TINYTEXT
|
L +1 bytes, onde L < 2^8 |
BLOB , TEXT
|
L +2 bytes, onde L < 2^16 |
MEDIUMBLOB , MEDIUMTEXT
|
L +3 bytes, onde L < 2^24 |
LONGBLOB , LONGTEXT
|
L +4 bytes, onde L < 2^32 |
ENUM('valor1','valor2',...) |
1 ou 2 bytes, dependendo do número de valores enumerados (65535 valores no máximo) |
SET('valor1','valor2',...) |
1, 2, 3, 4 or 8 bytes, dependendo do número de membros do conjunto (64 membros no máximo) |
Tipos VARCHAR
, BLOB
e
TEXT
são de tamanho variáveis, tendo o
tamanho exigido para armazenamento dependendo do tamanho atual
dos valores da coluna (representado por L
na
tabela anterior), e não do tamanho máximo do tipo. Por
exemplo, uma coluna VARCHAR(10)
pode guardar
uma string com um tamanho máximo de 10 caracteres. O tamanho
exigido para armazenamento atual é o tamanho da string
(L
), mais 1 byte para para gravar o tamanho
da string. Por exemplo, para a string 'abcd'
,
L
é 4 e o tamanho exigido para armazenamento
é 5 bytes.
Os tipos BLOB
e TEXT
exigem 1, 2, 3 ou 4 bytes para gravar o tamanho do valor da
coluna, dependendo do tamanho máximo possível do tipo. See
Secção 6.2.3.2, “Os Tipos BLOB
e TEXT
”.
Se uma tabela inclui qualquer tipo de coluna de tamanho variável, o formato do registro também será de tamanho variável. Note que quando uma tabela é criada, MySQL pode, sob certas condições, mudar uma coluna de um tipo de tamanho variável para um tipo de tamanho fixo, ou vice-versa. See Secção 6.5.3.1, “Alteração de Especificações de Colunas”.
O tamanho de um objeto ENUM
é determinado
por um número de diferntes valores enumerados. Um byte é usado
para enumerações até 255 valores possíveis. Dois bytes são
usados para enumerações até 65535 valores. See
Secção 6.2.3.3, “O Tipo ENUM
”.
O tamanho de uma objeto é determinado pelo número de
diferentes membros do conjunto. Se o tamanho do conjunto é
N
, o objeto ocupa (N+7)/8
bytes, arredondados acima para 1, 2, 3, 4, ou 8 bytes. Um
SET
pode ter no máximo 64 membros. See
Secção 6.2.3.4, “O Tipo SET
”.
O tamanho máximo de um registro em uma tabela
MyISAM
é 65534 bytes. Cada coluna
BLOB
e TEXT
ocupa apenas
5-9 bytes deste tamanho.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.