MySQL によれば、text
列は 65,535 バイトを保持します。
それで、これが正当な境界であれば、実際には約 32k の UTF-8 文字しか収まらないのでしょうか? それとも、これはドキュメントを書いた人が文字とバイトを区別できない「あいまいな」境界の 1 つであり、次のように設定すると、実際には約 64k の UTF-8 文字が許可されるのでしょうかutf8_general_ci
?
ベストアンサー1
列は最大 バイトtext
まで可能です65,535
。
文字utf-8
は最大 3 バイトです。
つまり、実際の制限は21,844
文字数になります。
詳細についてはマニュアルを参照してください:http://dev.mysql.com/doc/refman/5.1/en/文字列型の概要.html
可変長文字列。M は、文字数で表した最大列長を表します。M の範囲は 0 ~ 65,535 です。VARCHAR の有効な最大長は、最大行サイズ (65,535 バイト、すべての列で共有) と使用される文字セットによって決まります。たとえば、utf8 文字は 1 文字あたり最大 3 バイトを必要とするため、utf8 文字セットを使用する VARCHAR 列は最大 21,844 文字として宣言できます。