Det här svaret dök upp överst i mina sökresultat på Google men var inte korrekt så:
Förvirringen beror förmodligen på att olika versioner av mysql testas.
- Version 4 räknar byte
- Version 5 räknar tecken
http://dev.mysql.com/doc /refman/5.0/en/string-type-overview.html
MySQL tolkar längdspecifikationer i teckenkolumndefinitioner i teckenenheter. (Före MySQL 4.1 tolkades kolumnlängder i byte.) Detta gäller CHAR, VARCHAR och TEXT-typerna.
Intressant nog (jag hade inte tänkt på det) maxlängden för en varchar-kolumn påverkas av utf8 enligt följande:
Den effektiva maximala längden för en VARCHAR i MySQL 5.0.3 och senare är beroende av den maximala radstorleken (65 535 byte, som delas mellan alla kolumner) och teckenuppsättningen som används. Till exempel kan utf8-tecken kräva upp till tre byte per tecken, så en VARCHAR-kolumn som använder utf8-teckenuppsättningen kan deklareras som maximalt 21 844 tecken.