【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程度のテキストが入るということになる。流石にやりすぎのような気もするが、まあなんとかなるだろう。

以上。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください