数据超长了,就会出现如下错误
Mysql2::Error: Data too long for column
1、varchar的值大小设置为1到65,535之间的任何值。 TEXT字段的最大固定大小为65,535个字符。这样来看没区别。
2、varchar可以是索引的一部分,而TEXT字段要求您指定前缀长度,该长度可以是索引的一部分。没太明白,貌似varchar更方便些。
3、varchar与表内联存储(至少对于MyISAM存储引擎而言),因此在大小合理时可能会更快,取决于您的数据和硬件。同时,TEXT存储在表外,该表具有指向实际存储位置的指针。这么说来其实varchar在数据不大的时候更合适,毕竟text还得再跳转一次。
4、排序使用TEXT列将需要使用基于磁盘的临时表作为MEMORY(HEAP)存储引擎。这就更慢了,尤其是还要使用临时表。
网上的结论也是建议优先使用char, varchar, 尽量不用text, 最终我是将字段长度设置为了1024。