在mysql中设置varchar()的最大大小有什么意义?

时间:2017-02-27 17:31:08

标签: mysql sql

我读到"If you put a greater value than 255 it will be converted to a TEXT type"那么设置最大尺寸有什么意义呢?

3 个答案:

答案 0 :(得分:1)

指定最大长度的一个原因是,即使VARCHAR'最多可以达到255(or more)个字符,也适用于索引。您想告诉数据库有多少个字符正在正在使用,以便索引可以高效并适合存储引擎的功能。索引中的数据量有限制(请参阅MyISAMInnoDB

如果你问,“为什么不在任何地方使用TEXT”?嗯,它不是存储效率高,不能在索引中使用,它也可以有不同的检索特性。

另见Difference between VARCHAR and TEXT in mysql

答案 1 :(得分:1)

这些信息仅仅过了10年。我无法链接该手册,因为Oracle已从其网站中删除了旧版本,但引用是:

  

在MySQL 5.0.3之前,VARCHAR列具有长度规范   大于255被转换为可能的最小TEXT类型   保持给定长度的值。例如,VARCHAR(500)是   转换为TEXT,VARCHAR(200000)转换为MEDIUMTEXT。   这是兼容性功能。但是,这种转换受到影响   尾随空间移除。

显然,VARCHAR在MySQL / 3.23之前不接受大于255的大小。他们发现这将是一种保持向后兼容性的好方法,后来又恢复了决定。

答案 2 :(得分:0)

并不总是你需要VarChar去255.例如,密码的varchar是6位,而不是我将它设置为6所以如果用户试图解析到我的数据库,它将抛出错误。当您期待一条消息或任何您没有限制的内容时,您可以将其设置为255!

@Paul也提到了内存!记忆和检索特征也会有所不同。

是的,文本超过255,会抛出错误!