Този отговор се появи в горната част на резултатите от търсенето ми с Google, но не беше правилен, така че:
Объркването вероятно се дължи на различни версии на mysql, които се тестват.
- Версия 4 брои байтове
- Версия 5 отчита знаци
http://dev.mysql.com/doc /refman/5.0/en/string-type-overview.html
MySQL интерпретира спецификациите на дължината в дефинициите на колони от знаци в символни единици. (Преди MySQL 4.1 дължината на колоните се интерпретира в байтове.) Това се отнася за типовете CHAR, VARCHAR и TEXT.
Интересното е (не се бях замислял) максималната дължина на колона varchar се влияе от utf8, както следва:
Ефективната максимална дължина на VARCHAR в MySQL 5.0.3 и по-късно зависи от максималния размер на реда (65 535 байта, който се споделя между всички колони) и използвания набор от знаци. Например, utf8 символите могат да изискват до три байта на знак, така че колона VARCHAR, която използва набора от utf8 символи, може да бъде декларирана като максимум 21 844 знака.