ホームページ >データベース >mysql チュートリアル >MySQL の varchar(max) に相当するものは何ですか?

MySQL の varchar(max) に相当するものは何ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-13 03:15:10616ブラウズ

What's the MySQL Equivalent of varchar(max)?

MySQL の varchar(max) に相当するものを調べる

MySQL は、varchar(max) に相当するものを明示的に提供していません。 他のデータベース システムで使用されるデータ型。ただし、MySQL の制限内で同様の機能を実現する方法があります。

VARCHAR サイズ制限

デフォルトでは、VARCHAR フィールドは 255 文字です。この制限を拡張するには、VARCHAR(length) 構文を使用できます。ただし、この長さは、MySQL の最大行サイズである 64KB (BLOB を除く) の影響を受けます。

例:

VARCHAR(65535)
これにより、

VARCHAR フィールドの最大長は 65535 文字です。

文字セット考慮事項

UTF8 などのマルチバイト文字セットでは、

VARCHAR

フィールドの有効長が短くなります。 UTF8 では、各文字が複数バイトのストレージを占有する可能性があります。これは、UTF8 を使用した VARCHAR フィールドの実際の最大長が小さくなることを意味します。

VARCHAR(21844) CHARACTER SET utf8
VARCHAR 長さ制限の例

最大行サイズの計算には、

VARCHAR

長さエンコーディングのストレージ オーバーヘッドを含める必要があるため、宣言できる最大長は、最大行サイズよりわずかに小さくなります。

ただし、長さをわずかに減らすことでテーブルを作成できます。
CREATE TABLE foo ( v VARCHAR(65534) );
ERROR 1118 (42000): Row size too large...

マルチbyte 文字セットでは、各文字に必要なストレージ スペースが大きくなるため、最大長がさらに減少します。
CREATE TABLE foo ( v VARCHAR(65532) );
Query OK, 0 rows affected...

結論として、MySQL には
CREATE TABLE foo ( v VARCHAR(65532) ) CHARSET=utf8;
ERROR 1074 (42000): Column length too big for...
varchar(max)

とまったく同じである VARCHAR(length) データ型は、使用される最大行サイズと文字セットの制限内で大きなテキスト値を収容する手段を提供します。

以上がMySQL の varchar(max) に相当するものは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。