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

MySQL VARCHAR列の最大長はどれくらいですか?


実際には、VARCHARデータ型は可変長文字データをシングルバイトおよびマルチバイト文字で格納します。このデータ型の構文はVARCHAR(n)です。ここで、nは最大文字数であり、テーブルの作成時に指定します。 MySQL 5.03より前では、nの値は0から255の範囲である可能性がありますが、MySQL 5.03以降では、値は0から65,535の範囲である可能性があります。

VARCHARに格納される最大文字数は、使用される最大行サイズと文字セットによって異なります。 ASCII文字セットを使用している場合、ASCIIは1文字あたり1バイトを使用するため、65,535文字を格納できます。一方、utf8文字セットを使用している場合、utf8は1文字あたり3バイトを使用するため、文字制限は21,844になります。行サイズの最大制限は65,535バイトです。つまり、すべての列を含めると、65,535バイトを超えてはなりません。

mysql> Create Table var_test(FName Varchar(32765) NOT NULL, LName Varchar(32766)
       NOT NULL);
       Query OK, 0 rows affected (0.25 sec)

上記のクエリは、FName Varchar(32765)とLName Varchar(32766)の2つの列を持つテーブルを作成しました。したがって、全長は32765 + 2 + 32766 + 2 =65535になります(長さを格納するために各列に2バイトが使用されます)。

mysql> Create Table var_test1(FName varchar(32766) NOT NULL, LName Varchar(32766)
       NOT NULL);
       ERROR 1118 (42000): 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

ここで、長さを1バイト増やすと、MySQLは上記のクエリに示すようにエラーを返します。


  1. MySQL列から最大値を取得しますか?

    最初にテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Value int    -> ); Query OK, 0 rows affected (0.63 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(78); Query OK, 1 row affected (0.18 sec) mysql> insert into Demo

  2. Pythonでの文字列の最大長はどれくらいですか?

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