Por definição:
VARCHAR: O intervalo de comprimento é de 1 a 255 caracteres. Os valores VARCHAR são classificados e comparados sem distinção entre maiúsculas e minúsculas, a menos que a palavra-chave BINARY seja fornecida. x + 1 bytes
TINYBLOB, TINYTEXT: uma coluna BLOB ou TEXT com um comprimento máximo de 255 (2 ^ 8 - 1) caracteres x + 1 bytes
Portanto, com base nisso, crio a seguinte tabela:
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255),
`lastname` tinytext,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Ou é melhor criar um varchar ou tinytext e por quê ?
É o mesmo para:
VARCHAR: O intervalo de comprimento é> 255 caracteres. Os valores VARCHAR são classificados e comparados sem distinção entre maiúsculas e minúsculas, a menos que a palavra-chave BINARY seja fornecida. x + 2 bytes
BLOB, TEXT Uma coluna BLOB ou TEXT com um comprimento máximo de 65535 (2 ^ 16 - 1) caracteres x + 2 bytes
Respostas:
Nesse caso,
varchar
é melhor.Observe que
varchar
pode ser de 1 a 65535 caracteres.Os blobs são salvos em uma seção separada do arquivo.
Eles exigem um fileread extra para incluir nos dados.
Por esse motivo, o varchar é obtido muito mais rápido.
Se você tem um blob grande que não acessa com frequência, então um blob faz mais sentido.
Armazenar os dados de blob em um arquivo separado (parte do) permite que seu arquivo de dados principais seja menor e, portanto, obtido mais rápido.
fonte