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+2bytes se D > 0,M+1bytes
                se D = 0 (D+2, seM <
                D) | 
| NUMERIC(M,D) | M+2bytes se D > 0,M+1bytes
                se D = 0 (D+2, seM <
                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) | Mbytes,1 <= M <= 255 | 
| VARCHAR(M) | L+1 bytes, ondeL <= Me1 <= M <= 255 | 
| TINYBLOB,TINYTEXT | L+1 bytes, ondeL< 2^8 | 
| BLOB,TEXT | L+2 bytes, ondeL< 2^16 | 
| MEDIUMBLOB,MEDIUMTEXT | L+3 bytes, ondeL< 2^24 | 
| LONGBLOB,LONGTEXT | L+4 bytes, ondeL< 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.

