为什么rails将TEXT列固定为65535个字符?
我正在使用Ruby on Rails在MySQL的TEXT列中保存原始电子邮件。 它一直被截断为65535个字符,是否有人知道是什么原因引起的?
MySQL使用max_allowed_packet=64M
运行
使用InnoDB作为存储引擎。
它会被截断到那个长度,因为……好吧, 那就是适合TEXT列的内容 。
如果你想存储更多,你需要MEDIUMTEXT或LONGTEXT。
MySQL on Rails没有截断,MySQL也没有。
TEXT类型限制为2^16 - 1 = 65535
字符, 请参阅文档 。
65535是那些“神奇的数字”之一 – 它是2 ^ 16 – 1.这正是MySQL中TEXT列的最大限制。
我不是Ruby专家,但数字65535引起了我的注意 – 这是16位(减去1,这通常是特殊的)。 您可能正在使用您所使用类型的大小限制的墙。