MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL VARCHARの最大サイズはいくつですか?


5.0.3より前のMySQLバージョンは255文字を格納できましたが、バージョン5.0.3以降は65,535文字を格納できます。

MySQLの公式ドキュメントには次のように記載されています-

MySQL 5.0.3以降のVARCHARの有効な最大長は、最大行サイズ(65,535バイト、すべての列で共有される)と使用される文字セットの影響を受けます。たとえば、utf8文字は1文字あたり最大3バイトを必要とする可能性があるため、utf8文字セットを使用するVARCHAR列は最大21,844文字であると宣言できます。

最大行サイズの制限は65,535バイトであることに注意してください。これは、すべての列を含めて65,535バイトを超えてはならないことを示しています。

これに違反した場合にどうなるか見てみましょう-

これは、2つの列を持つテーブルです。32,765の長さの「1つの」varcharと32766の「2つの」varcharです。

長さ=32765+ 2 + 32766 + 2=65535。

CREATE TABLE IF NOT EXISTS `mytable` (
`one` varchar(32765) NOT NULL,
`two` varchar(32766) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

次に、列の長さを増やしましょう-

CREATE TABLE IF NOT EXISTS `mytable` (
`one` varchar(32767) NOT NULL,
`two` varchar(32770) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

上記のエラーは次のようになります-

#1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs

上記自体は次のように述べています-

The maximum row size is 65,535 bytes. If it exceeds, an error will be visible.

  1. MySQLのvarcharフィールドのサイズを拡張すると、その中のデータに影響しますか?

    MySQLのvarcharフィールドのサイズを拡張する場合、その中のデータには影響しません。 まずテーブルを作成しましょう- mysql> create table DemoTable(    Name varchar(8) ); Query OK, 0 rows affected (1.11 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('John'); Query OK, 1 row affected (0.17 sec) mysql&

  2. Pythonのリストの最大サイズはいくつですか?

    リストの最大長はプラットフォームに依存し、アドレス空間やRAMに依存します。 sysモジュールで定義されたmaxsize定数は、64ビットシステムで263-1を返します。 >>> import sys >>> sys.maxsize 9223372036854775807 プラットフォームのPy_ssize_tタイプでサポートされる最大の正の整数は、リスト、文字列、dict、およびその他の多くのコンテナが持つことができる最大サイズです。