この答えは私のグーグル検索結果の上部に表示されましたが、正しくありませんでした:
混乱はおそらく、テストされているmysqlの異なるバージョンが原因です。
- バージョン4はバイトをカウントします
- バージョン5は文字をカウントします
http://dev.mysql.com/doc /refman/5.0/en/string-type-overview.html
MySQLは、文字列定義の長さの指定を文字単位で解釈します。 (MySQL 4.1より前では、列の長さはバイト単位で解釈されていました。)これは、CHAR、VARCHAR、およびTEXTタイプに適用されます。
興味深いことに(私はそれについて考えていませんでした)、varchar列の最大長は次のようにutf8の影響を受けます:
MySQL 5.0.3以降のVARCHARの有効な最大長は、最大行サイズ(65,535バイト、すべての列で共有される)と使用される文字セットの影響を受けます。たとえば、utf8文字は1文字あたり最大3バイトを必要とする可能性があるため、utf8文字セットを使用するVARCHAR列は最大21,844文字であると宣言できます。