为什么rails将TEXT列截断为65535个字符?

时间:2010-02-15 15:13:09

标签: mysql ruby-on-rails ruby

我使用Ruby on Rails在MySQL的TEXT列中保存原始电子邮件。它一直被截断为65535个字符,是否有人知道是什么导致这个?

MySQL正在使用max_allowed_packet=64M

运行

将InnoDB用于存储引擎。

4 个答案:

答案 0 :(得分:13)

它被截断到那个长度因为......好吧,that's what will fit in a TEXT column

如果您想存储更多内容,则需要MEDIUMTEXT或LONGTEXT。

答案 1 :(得分:2)

Ruby on Rails没有截断,MySQL也没有。

TEXT类型仅限2^16 - 1 = 65535个字符,see the documentation

答案 2 :(得分:1)

65535是其中一个“神奇数字” - 它是2 ^ 16 - 1.这就是MySQL中TEXT列的最大限制。

答案 3 :(得分:1)

我不是Ruby专家,但是数字65535引起了我的注意 - 那是16位(减去1,这通常是特殊的)。您可能正在使用您所使用类型的大小限制的墙。