Um longo
VARCHAR
é armazenado da mesma maneira que um TEXT
/BLOB
campo em InnoDB
. fonte
A menos que você precise indexar essas colunas (nesse caso
VARCHAR
é muito mais rápido) não há razão para usar VARCHAR
sobre TEXT
para campos longos - existem algumas otimizações específicas do mecanismo em MySQL
para ajustar a recuperação de dados de acordo com o comprimento, e você deve usar o tipo de coluna correto para tirar proveito disso. Caso você esteja usando
MyISAM
uma discussão aprofundada sobre o tema está aqui . TEXT
e BLOB
são armazenados fora da mesa com a mesa tendo apenas um ponteiro para o local do armazenamento real. VARCHAR
é armazenado em linha com a tabela. VARCHAR
é mais rápido quando o tamanho é razoável. De acordo com este teste ,
VARCHAR
é cerca de três vezes mais rápido que o texto.