mysql varchar与text的区别

数据超长了,就会出现如下错误

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。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注