我使用Ruby on Rails在MySQL的TEXT列中保存原始电子邮件。它一直被截断为65535个字符,是否有人知道是什么导致这个?
MySQL正在使用max_allowed_packet=64M
将InnoDB用于存储引擎。
答案 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,这通常是特殊的)。您可能正在使用您所使用类型的大小限制的墙。