VARCHAR の長さは MySQL で UTF-8 でどのように機能しますか: バイトまたは文字?

Barbara Streisand
リリース: 2024-11-22 02:21:13
オリジナル
511 人が閲覧しました

How do VARCHAR lengths work in MySQL with UTF-8: Bytes or Characters?

MySQL VARCHAR の長さと UTF-8: バイトと文字

MySQL テーブルに VARCHAR フィールドを作成する場合、その方法を理解することが重要です指定された長さが解釈されます。 MySQL 4.1 より前のバージョンでは、VARCHAR の長さはバイト単位で定義されていました。ただし、MySQL 4.1 以降では、長さは文字単位でカウントされます。

UTF-8 テーブルの VARCHAR(32) フィールドは、32 バイトではなく 32 文字を表します。これは、UTF-8 が可変長エンコーディングであり、各文字が複数バイト (最大 4 バイト) を占めることができるためです。

バージョン 5 の公式 MySQL ドキュメントには次のように記載されています。

"MySQL文字列定義の長さの指定を文字単位で解釈します。これは、CHAR、VARCHAR、および TEXT 型に適用されます。"

ただし、 VARCHAR 列の最大長も UTF-8 の影響を受けます。 MySQL 5.0.3 以降では、有効な最大長は行サイズ (65,535 バイト) と使用される文字セットによって制限されます。

たとえば、UTF-8 文字は 1 文字あたり最大 3 バイトを必要とするため、 、UTF-8 を使用する VARCHAR 列は、最大 21,844 文字で宣言できます。これは、21,844 に 3 を乗じた値 (1 文字あたりのバイト数) が 65,532 となり、最大行サイズ内で他の列データ用に 3 バイトのバッファーが残るためです。

以上がVARCHAR の長さは MySQL で UTF-8 でどのように機能しますか: バイトまたは文字?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート