No hay diferencia, debajo del capó todo es varlena
(matriz de longitud variable).
Consulte este artículo de Depesz:http://www.depesz.com/index.php/2010/03/02/charx-vs-varcharx-vs-varchar-vs-text/
Un par de aspectos destacados:
Para resumirlo todo:
- char(n) – ocupa demasiado espacio cuando se trata de valores más cortos que
n
(los rellena an
) y puede dar lugar a errores sutiles debido a la adición de espacios finales, además es problemático cambiar el límite - varchar(n):es problemático cambiar el límite en el entorno en vivo (requiere un bloqueo exclusivo al modificar la tabla)
- varchar:como texto
- texto:para mí un ganador – sobre (n) tipos de datos porque carece de sus problemas, y sobre varchar – porque tiene un nombre distinto
El artículo realiza pruebas detalladas para mostrar que el rendimiento de las inserciones y selecciones para los 4 tipos de datos es similar. También analiza detalladamente las formas alternativas de restringir la longitud cuando sea necesario. Las restricciones o dominios basados en funciones brindan la ventaja de un aumento instantáneo de la restricción de longitud y, dado que la disminución de una restricción de longitud de cadena es poco común, depesz concluye que uno de ellos suele ser la mejor opción para un límite de longitud.