Qual é o tamanho máximo do MySQL VARCHAR?

Eu gostaria de saber qual é o tamanho máximo para um tipo MySQL VARCHAR.

Eu li que o tamanho máximo é limitado pelo tamanho da linha, que é cerca de 65k. Eu tentei ajustar o campo para varchar(20000) mas diz que isso'é muito grande.

Eu poderia defini-lo como varchar(10000). Qual é o máximo exato em que eu posso configurá-lo?

**Cuidado que o MySQL tem um limite máximo de tamanho de linha***

A representação interna de uma tabela MySQL tem um limite máximo de tamanho de linha de 65.535 bytes, sem contar com os tipos BLOB e TEXT. As colunas BLOB e TEXT contribuem apenas com 9 a 12 bytes para o limite de tamanho de linha porque o seu conteúdo é armazenado separadamente do resto da linha. Leia mais sobre Limites na Tabela de Contagem de Colunas e Tamanho das Linhas

**Tamanho máximo que uma única coluna pode ocupar, é diferente antes e depois do MySQL 5.0.3***

Valores em colunas VARCHAR são cadeias de comprimento variável. O comprimento pode ser especificado como um valor de 0 a 255 antes do MySQL 5.0.3, e 0 a 65.535 em 5.0.3 e versões posteriores. O comprimento máximo efetivo de uma VARCHAR no MySQL 5.0.3 e posteriores está sujeito ao tamanho máximo da linha (65.535 bytes, que é compartilhado entre todas as colunas) e o conjunto de caracteres utilizado.

No entanto, note que o limite é mais baixo se você usar um conjunto de caracteres multi-byte como utf8 ou utf8mb4.

Utilizar tipos TEXT para ultrapassar o limite de tamanho das linhas.

Os quatro tipos TEXT são TINYTEXT, TEXT, MEDIUMTEXT, e LONGTEXT. Estes correspondem aos quatro tipos de BLOB e têm os mesmos comprimentos máximos e requisitos de armazenamento.

**Mais detalhes sobre os tipos BLOB e TEXT***

**Mais sete***

Confira mais detalhes em Data Type Storage Requirements que trata dos requisitos de armazenamento para todos os tipos de dados.

Comentários (5)

você também pode usar MEDIUMBLOB/LONGBLOB ou MEDIUMTEXT/LONGTEXT

Um tipo BLOB no MySQL pode armazenar até 65.534 bytes, se você tentar armazenar mais do que esta quantidade de dados que o MySQL truncará os dados. MEDIUMBLOB pode armazenar até 16.777.213 bytes, e LONGBLOB pode armazenar até 4.294.967.292 bytes.

Comentários (0)

Você pode utilizar TEXT tipo, que não está limitado a 64KB.

Comentários (2)