Diese Antwort tauchte oben in meinen Google-Suchergebnissen auf, war aber nicht korrekt:
Die Verwirrung ist wahrscheinlich darauf zurückzuführen, dass verschiedene Versionen von MySQL getestet werden.
- Version 4 zählt Bytes
- Version 5 zählt Zeichen
http://dev.mysql.com/doc /refman/5.0/en/string-type-overview.html
MySQL interpretiert Längenangaben in Zeichenspaltendefinitionen in Zeicheneinheiten. (Vor MySQL 4.1 wurden Spaltenlängen in Bytes interpretiert.) Dies gilt für die Typen CHAR, VARCHAR und TEXT.
Interessanterweise (darüber hatte ich nicht nachgedacht) wird die maximale Länge einer varchar-Spalte von utf8 wie folgt beeinflusst:
Die effektive maximale Länge eines VARCHAR in MySQL 5.0.3 und höher hängt von der maximalen Zeilengröße (65.535 Byte, die von allen Spalten gemeinsam genutzt wird) und dem verwendeten Zeichensatz ab. Beispielsweise können utf8-Zeichen bis zu drei Bytes pro Zeichen erfordern, sodass eine VARCHAR-Spalte, die den utf8-Zeichensatz verwendet, mit maximal 21.844 Zeichen deklariert werden kann.