Dit antwoord verscheen bovenaan mijn Google-zoekresultaten, maar was niet correct, dus:
De verwarring is waarschijnlijk te wijten aan het feit dat verschillende versies van mysql worden getest.
- Versie 4 telt bytes
- Versie 5 telt tekens
http://dev.mysql.com/doc /refman/5.0/en/string-type-overview.html
MySQL interpreteert lengtespecificaties in karakterkolomdefinities in karaktereenheden. (Vóór MySQL 4.1 werden kolomlengtes geïnterpreteerd in bytes.) Dit geldt voor CHAR, VARCHAR en de TEXT-typen.
Interessant genoeg (ik had er niet over nagedacht) de maximale lengte van een varchar-kolom wordt als volgt beïnvloed door utf8:
De effectieve maximale lengte van een VARCHAR in MySQL 5.0.3 en hoger is afhankelijk van de maximale rijgrootte (65.535 bytes, die door alle kolommen wordt gedeeld) en de gebruikte tekenset. Utf8-tekens kunnen bijvoorbeeld maximaal drie bytes per teken vereisen, dus een VARCHAR-kolom die de utf8-tekenset gebruikt, kan worden gedeclareerd als maximaal 21.844 tekens.