Ta odpowiedź pojawiła się u góry moich wyników wyszukiwania Google, ale nie była poprawna, więc:
Zamieszanie jest prawdopodobnie spowodowane testowaniem różnych wersji mysql.
- Wersja 4 liczy bajty
- Wersja 5 liczy znaki
http://dev.mysql.com/doc /refman/5.0/en/string-type-overview.html
MySQL interpretuje specyfikacje długości w definicjach kolumn znakowych w jednostkach znakowych. (Przed MySQL 4.1 długości kolumn były interpretowane w bajtach.) Dotyczy to typów CHAR, VARCHAR i TEXT.
Co ciekawe (nie myślałem o tym) na maksymalną długość kolumny varchar wpływa utf8 w następujący sposób:
Efektywna maksymalna długość VARCHAR w MySQL 5.0.3 i nowszych jest zależna od maksymalnego rozmiaru wiersza (65 535 bajtów, który jest współdzielony przez wszystkie kolumny) i użytego zestawu znaków. Na przykład znaki utf8 mogą wymagać maksymalnie trzech bajtów na znak, więc kolumna VARCHAR, która używa zestawu znaków utf8, może być zadeklarowana jako maksymalnie 21 844 znaków.