【MySQL】text型の最大長は意外と短い
MySQL(MariaDB)のtext型でハマった。text型の最大長は意外と短い。
text型の最大長は、それぞれ下記の通りだ。
- TINYTEXT:255 (2^8 – 1) bytes
→ 0.25KB - TEXT:65,535 (2^16 – 1) bytes
→ 64KB - MEDIUMTEXT:16,777,215 (2^24 – 1) bytes
→ 16MB - LONGTEXT:4,294,967,295 (2^32 – 1) bytes
→ 4GB
これらのサイズに収まりきらないと、insert文の実行時に溢れた部分は自動的に切り捨てられてしまう。
text型は、要するに64kbyteまでしか入らない。ちょっと長めのテキストだと、あふれることはよくあるだろう。例えば、学術論文のテキストをまるごと格納しようと思うと、入り切らないことはそこそこありそうだ。
私の対処としては、text型はすべてlongtext型にしてしまった。longtext型だと、4GB程度のテキストが入るということになる。流石にやりすぎのような気もするが、まあなんとかなるだろう。
以上。