mysql varchar 长度 效率_mysql - SQL varchar列长度的最佳实践

设置SQL表时,合理定义VARCHAR长度至关重要。虽然2^n长度看似均匀,但过大的限制可能导致不必要的存储和性能影响。例如,varchar(MAX)可能在大部分数据较短时增加存储负担。MySQL中,临时表和MEMORY表的VARCHAR列会按最大长度存储,可能消耗更多内存,影响效率。建议根据业务需求设定合理范围,避免过度设计。
摘要由CSDN通过智能技术生成

每当我设置一个新的SQL表时,我都会有同样的感觉,即2 ^ n更“均匀”......但总结一下这里的答案,只需定义varchar(2 ^ n)就不会对存储空间产生重大影响。 甚至varchar(MAX)。

也就是说,在设置高varchar()限制时,您仍应该预见到对存储和性能的潜在影响。 例如,假设您创建了一个varchar(MAX)列来保存带有全文索引的产品描述。 如果99%的描述只有500个字符长,然后突然有人用维基百科文章替换所述描述,您可能会注意到意外的重要存储和性能命中。

Bill Karwin要考虑的另一件事:

有一个可能的性能影响:在MySQL中,临时表   和MEMORY表将VARCHAR列存储为固定长度的列,   填充到最大长度。 如果您设计很多VARCHAR列   大于你需要的最大尺寸,你将消耗更多的内存   比你必须的。 这会影响缓存效率,排序速度等。

基本上,只是在略大的尺寸上提出合理的业务约束和错误。 正如@onedaywhen指出的那样,英国的姓氏通常在1-35个字符之间。 如果你决定把它变成varchar(64),你真的不会伤害任何东西......除非你存储这个家伙的姓氏据说长达666个字符。 在那种情况下,也许varchar(1028)更有意义。

如果它有用,这里的varchar 2 ^ 5到2 ^ 10可能看起来像填充:

varchar(32) Lorem ipsum dolor sit amet amet.

varchar(64) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donecie

varchar(128) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donecie

vestibulum massa. Nullam dignissim elementum molestie. Vehiculas

varchar(256) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donecie

vestibulum massa. Nullam dignissim elementum molestie. Vehiculas

velit metus, sit amet tristique purus condimentum eleifend. Quis

que mollis magna vel massa malesuada bibendum. Proinde tincidunt

varchar(512) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donecie

vestibulum massa. Nullam dignissim elementum molestie. Vehiculas

velit metus, sit amet tristique purus condimentum eleifend. Quis

que mollis magna vel massa malesuada bibendum. Proinde tincidunt

dolor tellus, sit amet porta neque varius vitae. Seduse molestie

lacus id lacinia tempus. Vestibulum accumsan facilisis lorem, et

mollis diam pretium gravida. In facilisis vitae tortor id vulput

ate. Proin ornare arcu in sollicitudin pharetra. Crasti molestie

varchar(1024) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donecie

vestibulum massa. Nullam dignissim elementum molestie. Vehiculas

velit metus, sit amet tristique purus condimentum eleifend. Quis

que mollis magna vel massa malesuada bibendum. Proinde tincidunt

dolor tellus, sit amet porta neque varius vitae. Seduse molestie

lacus id lacinia tempus. Vestibulum accumsan facilisis lorem, et

mollis diam pretium gravida. In facilisis vitae tortor id vulput

ate. Proin ornare arcu in sollicitudin pharetra. Crasti molestie

dapibus leo lobortis eleifend. Vivamus vitae diam turpis. Vivamu

nec tristique magna, vel tincidunt diam. Maecenas elementum semi

quam. In ut est porttitor, sagittis nulla id, fermentum turpist.

Curabitur pretium nibh a imperdiet cursus. Sed at vulputate este

proin fermentum pretium justo, ac malesuada eros et Pellentesque

vulputate hendrerit molestie. Aenean imperdiet a enim at finibus

fusce ut ullamcorper risus, a cursus massa. Nunc non dapibus vel

Lorem ipsum dolor sit amet, consectetur Praesent ut ultrices sit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值