Um longo
VARCHAR é armazenado da mesma maneira que um TEXT /BLOB campo em InnoDB (que eu suponho que você esteja usando para transacionalidade, integridade referencial e recuperação de falhas, certo?) - isto é, externamente ao restante da tabela no disco (o que pode exigir outra leitura de disco para recuperar). 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 tópico está aqui .