Dette svar dukkede op øverst i mine google-søgeresultater, men det var ikke korrekt, så:
Forvirringen skyldes sandsynligvis, at forskellige versioner af mysql bliver testet.
- Version 4 tæller bytes
- Version 5 tæller tegn
http://dev.mysql.com/doc /refman/5.0/da/string-type-overview.html
MySQL fortolker længdespecifikationer i tegnkolonnedefinitioner i tegnenheder. (Før MySQL 4.1 blev kolonnelængder fortolket i bytes.) Dette gælder for CHAR, VARCHAR og TEXT-typerne.
Interessant nok (jeg havde ikke tænkt over det) er den maksimale længde af en varchar-søjle påvirket af utf8 som følger:
Den effektive maksimale længde af en VARCHAR i MySQL 5.0.3 og nyere er underlagt den maksimale rækkestørrelse (65.535 bytes, som deles mellem alle kolonner) og det anvendte tegnsæt. For eksempel kan utf8-tegn kræve op til tre bytes pr. tegn, så en VARCHAR-kolonne, der bruger utf8-tegnsættet, kan erklæres til maksimalt 21.844 tegn.