一尘不染

MySQL的最佳varchar大小是多少?

mysql

MySQL如何存储varchar字段?我可以假设以下模式代表合理的存储大小:

1,2,4,8,16,32,64,128,255(最大)

通过示例进行说明。可以说我有20个字符的varchar字段。MySQL在创建此字段时是否基本上保留32个字节的空间(不确定是否为字节),但只允许输入20个字节?

我想我担心优化大型表的磁盘空间。


阅读 655

收藏
2020-05-17

共1个答案

一尘不染

为了回答这个问题,在磁盘上MySql使用1 +字段中用于存储数据的大小(因此,如果将该列声明为varchar(45),并且该字段为“
FooBar”,则它将在磁盘上使用7个字节,除非您当然使用多字节字符集,否则将使用14个字节)。因此,无论您声明自己的列,它都不会对存储端产生任何影响(您表示担心大型表的磁盘优化)。但是,它确实在查询中有所不同,因为当MySql生成临时表(SORT,ORDER等)时,VARCHAR转换为CHAR,并且可以容纳在单个页面中的记录越多,表扫描所需要的内存越少且速度越快是。

2020-05-17