Muchas gracias por tu pronta respuesta gnzsoloyo.
En el manual veo que dice
Cita: [NATIONAL] VARCHAR(M) [BINARY]
Cadena de caracteres de longitud variable. M representa la longitud de columna máxima. En MySQL 5.0, el rango de M es de 0 a 255 antes de MySQL 5.0.3, y de 0 a 65,535 en MySQL 5.0.3 y posterior. (La longitud máxima real de un VARCHAR en MySQL 5.0 se determina por el tamaño de registro máximo y el conjunto de caracteres que use. La longitud máxima efectiva desde MySQL 5.0.3 es de 65,532 bytes.)
Yo uso la versión 5.1.69 de MYSQL.
Luego dice
Cita: BLOB[(M)]
Una columna BLOB con longitud máxima de 65,535 (2^16 - 1) bytes.
Una longitud opcional M puede darse para este tipo en MySQL 5.0. Si se hace, MySQL creará las columnas como el tipo BLOB de tamaño mínimo para tratar los valores de M bytes.
Entonces veo que me equivoqué al leer el manual.
A partir de 5.0.3, las columnas Varchar y BLOB tienen la misma longitud.
Entonces voy a preguntar algo que es obvio pero no pregunté
¿Cuales son las diferencias?
¿Por qué me recomiendas utilizar varchar?
Es que veo las diferencias en el manual, pero no se qué significan :S
Cita: Las ordenaciones y comparaciones de las columnas de tipo carácter se basan en el conjunto de caracteres asignado a la columna. Para versiones anteriores, la comparación y ordenación se basan en la colación del conjunto de caracteres del servidor. Para columnas CHAR y VARCHAR, puede declarar que la columna con el atributo BINARY realice la ordenación y la comparación usando los códigos de los valores subyacentes en lugar del orden léxico.
También que
Cita: Desde MySQL 5.0.3, VARCHAR se guarda con un prefijo de longitud de uno o dos bytes + datos. La longitud del prefijo es de dos bytes si la columna VARCHAR se declara con una longitud mayor a 255.
Disculpa si importuno con las preguntas, pero como siempre, lo hago para aprender todos los detalles posibles.