MySQLのVARCHAR型の最大サイズを知りたいです。
最大サイズは、約65kの行サイズによって制限されると読みました。フィールドをvarchar(20000)
に設定しようとしましたが、大きすぎると言われました。
varchar(10000)`に設定することは可能です。 正確な最大値はどれくらいでしょうか?
MySQLには最大行サイズの制限があることに留意してください。 MySQLテーブルの内部表現では、BLOBおよびTEXTタイプを除いて、行の最大サイズは65,535バイトに制限されています。BLOBおよびTEXTカラムは、その内容が行の残りの部分とは別に保存されるため、行サイズの制限には9~12バイトしか寄与しません。テーブルの列数と行のサイズの制限](http://dev.mysql.com/doc/refman/5.7/en/column-count-limit.html)の続きを読む
1つのカラムが占めることのできる最大サイズは、MySQL 5.0.3以前と以降では異なります。
VARCHARカラムの値は可変長の文字列です。長さは、MySQL 5.0.3以前では0~255、5.0.3以降では0~65,535の値で指定できます。MySQL 5.0.3以降でのVARCHARの実質的な最大長は、最大行サイズ(65,535バイト、すべてのカラムで共有される)と使用されるキャラクタセットに従う。
ただし、utf8やutf8mb4のようなマルチバイトのキャラクタセットを使用している場合は、制限値が低くなるので注意が必要です。
**行サイズの制限を克服するためには、TEXT
タイプを使用してください。
TEXTタイプには、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXTの4種類があります。これらは4つのBLOBタイプに対応しており、最大の長さとストレージ要件は同じです。
**BLOB型とTEXT型の詳細はこちらをご覧ください。
**さらに***。
すべてのデータタイプのストレージ要件を扱うData Type Storage Requirementsの詳細をチェックしてください。