首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL更好的性能: char(10)和trim或varchar(10)

SQL更好的性能: char(10)和trim或varchar(10)
EN

Stack Overflow用户
提问于 2010-04-15 18:53:51
回答 5查看 4K关注 0票数 1

我有一个使用密码的数据库。每个代码的长度可以从两个字符到十个字符不等。

在MS中,对这些代码使用char(10)并在它们出现时使用RTRIM是更好的性能,还是应该使用varchar(10)而不必担心裁剪额外的空格?我需要去掉空格,因为代码随后将被用于应用程序逻辑进行比较和不使用什么。

至于平均代码长度,很难准确判断。假设所有代码都是1到10之间的随机长度。编辑:对于代码的平均长度,粗略估计约为4.7个字符。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-15 18:56:43

我会投票给伐查。

我说varchar是为了避免导致索引使用无效的TRIM (除非您使用了一个与目的相反的计算列等等,不是吗?)

否则,在10长的时候,它将是50/50,但修剪后的平衡朝向varchar,并赢得了固定长度的利益。

票数 6
EN

Stack Overflow用户

发布于 2010-04-15 20:17:01

作为一般规则,总是倾向于更小的存储而不是额外的CPU。因为数据库性能的驱动因素总是IO,而较小的数据记录意味着每页有更多的记录,而这又意味着更少的IO请求。处理可变长度所涉及的额外CPU不会成为一个因素。从历史上看,在80年代甚至90年代的黑暗时代,这可能是一个可衡量的因素,但今天只是噪音。因为CPU和内存访问量大幅增加,但IO速度基本保持不变。这就是为什么“旧书”的建议今天不适用的原因。除非你有一个像char(2)这样的常量字段或者类似的字段,只要使用varchar,总是这样。

票数 3
EN

Stack Overflow用户

发布于 2010-04-15 19:05:15

我相信你不会分辨出两者的速度差别。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2648124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档