MySQLのデータベースの型を決める際に、長い文字列だから「テキスト型」にしよう。と安易に決めていたりはしませんか? たいていの場合はそれでも問題ないかもしれませんが、MySQLの「テキスト型」にも最大長はあり無限というわけではないので、テーブル設計の際は注意しておくようにしましょう。
テキスト型は「65,535バイト」
では、MySQLのテキスト型の最大長がいくつなのかというと「65,535バイト」となっています。なので「半角だと65,535字」「全角だと半分の32,767字」ということになります。 ※UTF-8の場合は1字が最大3バイトなので最小で21,845字。
最大長が 65,535 (216 − 1) 文字の
MySQL 5.6 リファレンスマニュアルTEXT
カラム。値にマルチバイト文字が含まれる場合、有効な最大長は少なくなります。各TEXT
値は、値のバイト数を示す 2 バイト長のプリフィクスを使用して格納されます。
なので、最大長のことを考えずに安易に「テキスト型」にしてしまうと、データが正常に登録できなかったり、一部のデータが切り落とされていた。という事象が発生してしまうので、登録するカラムが「テキスト型 」だったとしても、バリデーションチェックでサイズ確認は行い「65,535バイト」を超えているようならアラートを出すなどで対策をしておきましょう。
それではみなさん、自由なWEBライフをお過ごしください!