Няма разлика, под капака всичко е varlena
(масив с променлива дължина).
Вижте тази статия от Depesz:http://www.depesz.com/index.php/2010/03/02/charx-vs-varcharx-vs-varchar-vs-text/
Няколко акцента:
За да обобщим всичко:
- char(n) – заема твърде много място при работа със стойности, по-къси от
n
(подпълва ги доn
) и може да доведе до фини грешки поради добавяне на крайни интервали, плюс това е проблематично да се промени ограничението- varchar(n) – проблематично е да промените лимита в среда на живо (изисква изключително заключване при промяна на таблицата)
- varchar – точно като текст
- текст – за мен победител – над (n) типове данни, защото липсват техните проблеми, и над varchar – защото има различно име
Статията прави подробно тестване, за да покаже, че производителността на вмъкванията и изборите за всичките 4 типа данни са сходни. Той също така разглежда подробно алтернативни начини за ограничаване на дължината, когато е необходимо. Ограниченията или домейните, базирани на функции, осигуряват предимството на незабавното увеличаване на ограничението за дължина и на базата на това, че намаляването на ограничението за дължина на низа е рядкост, depesz заключава, че едно от тях обикновено е най-добрият избор за ограничение на дължината.