VARCHAR 尺寸限制重要吗?

2022-08-30 15:40:46

可能的重复:
Varchar长度在MySQL表中的重要性

使用 VARCHAR 时(假设这是短字符串的正确数据类型),大小是否重要?如果我将其设置为 20 个字符,这会占用更少的空间还是比 255 个字符更快?


答案 1

是的,在为多个列编制索引时很重要。

前缀最长可达 1000 字节(InnoDB 表为 767 字节)。请注意,前缀限制以字节为单位,而 CREATE TABLE 语句中的前缀长度被解释为字符数。在为使用多字节字符集的列指定前缀长度时,请务必考虑到这一点。

来源 : http://dev.mysql.com/doc/refman/5.0/en/column-indexes.html

在 latin1 排序规则中,最多只能指定 3 列 。
同时可以指定最多 50 列varchar(255)varchar(20)

直接输入,如果没有适当的索引,则会降低查询速度

在存储方面,它并没有区别,
代表varcharvariable-length strings


答案 2

通常,对于 VARCHAR 字段,存储在每个字段中的数据量决定了其在磁盘上的占用空间,而不是最大大小(与始终具有相同占用空间的 CHAR 字段不同)。

索引的所有字段中存储的总数据上限为 900 字节(字符长度限制为 900 字节索引大小)。

你做的字段越大,人们就越有可能尝试用于你想要的目的以外的目的 - 并且显示价值所需的屏幕空间就越大 - 所以尝试选择正确的尺寸是很好的做法,而不是假设如果你让它尽可能大,它将节省你不得不重新审视设计的时间。


推荐