我有一个朋友告诉我,如果我们只使用20个字符,永远不要将varchar声明为(255)。对于INT也是如此。
表现明智,这是真的吗?我可以通过减少列的大小来实现性能提升吗?当我将列声明为255时会发生什么?
答案 0 :(得分:2)
在大多数情况下,使用较短的VARCHAR
列不会有性能提升。
如果你有一个MEMORY
表 - 一个内存临时表,MySql将为列的长度分配内存。
来自docs:
MEMORY表使用固定长度 行存储格式。可变长度 使用存储VARCHAR等类型 一个固定的长度。
答案 1 :(得分:1)
如果您只需要TINYINT
的大小,则使用INT
代替TINYINT
将为每行节省几个字节。
如果您总是只使用20个字符,则VARCHAR(255)
将不会使用多于VARCHAR(20)
的字段(另一方面CHAR(255)
可能会使用更多CHAR(20)
)