MySQL VARCHAR 長さ: バイトと文字の混同をナビゲートする
MySQL 内では、VARCHAR(n) カラムの長さの解釈は、データベースのバージョンについて。 4.1 より前のバージョンでは、列の長さはバイト単位で定義されていました。ただし、MySQL 5 以降では、長さは文字単位で解釈されます。
バイト数: MySQL バージョン 4
MySQL バージョン 4 では、VARCHAR(32) カラム32 バイトのデータを収容できます。したがって、このフィールド内にマルチバイト文字を格納するには、特定の文字エンコーディングに依存し、1 文字あたりより多くのバイト数が必要になる可能性があります。
文字数: MySQL バージョン 5 以降
MySQL バージョン 4 以降では、カラムの長さは文字数によって決まります。 UTF-8 の VARCHAR(32) 列では 32 文字を使用できます。この場合でもマルチバイト UTF-8 文字は複数バイトを占有しますが、列の長さの計算ではバイトではなく文字数が考慮されます。
MySQL ドキュメントの確認
さらに明確にするために、MySQL 5 の公式ドキュメントには次のように記載されています。「MySQL は文字列定義の長さの指定を文字単位で解釈します...これは CHAR に適用されます。 「
UTF-8 による VARCHAR の最大長への影響
興味深いことに、VARCHAR 列の最大長も文字セットの影響を受けます」 。たとえば、MySQL 5.0.3 以降では、utf8 文字は 1 文字あたり最大 3 バイトを必要とする場合があります。したがって、UTF-8 を使用する VARCHAR 列は、宣言された最大長を 21,844 文字 (65,535 バイト / 1 文字あたり 3 バイト) にすることができます。
以上がMySQL 4 と 5 の間で VARCHAR の長さはどのように変わりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。