日期:2014-05-17  浏览次数:20570 次

聚集索引字段的效率问题
有一张物料档案表里面的一个物料编码字段,设置了聚集索引。

该物料号字段会以较高频率与其他表JOIN,做联表查询

我的问题是

我把该物料编码字段设置成6位数字的字符串,或者是12位字母数字混合字符串,

查询效率上会有区别吗?

------解决方案--------------------
聚集索引的字段,在设置的时候,有一些基本的规则,比如:

1、字段长度尽可能短,这样存储占用的空间就相对较小,比如一般都采用整数型,像int,numeric类型

2、尽可能是唯一的

3、最好不要用多个字段

4、很少修改这个字段


你上面说是6位数字字符串,和12位混合字符串,那肯定是6位数字字符串效率更高一点
------解决方案--------------------
引用:
Quote: 引用:

有区别,越长的列,存储空间越多,聚集索引的体积也越大,B-Tree的深度越深,查找时间越长,如果有非聚集索引,那么非聚集索引额体积也会跟着增大,性能也更低。另外数据越长,每个页存放数据越少,同样数据量所需的存放空间越多,IO也越多。尽可能使用短列

目前厂里对于存货编码有个讨论,手上的信息显示,外企用6位数字编码较多,国内企业喜欢用字母数字混合,也就是看到编码就知道是啥东西。
有同事提出6位数字会提高数据库查询效率,我就来CSDN问一下。
多谢了。


你说的确实是个问题,用了数字,效率高了,但是你一看这个数字,不知道意义。

如果用混合的方式,你一看就知道这个是什么意思,但效率要差一点。

这个还得你自己权衡,做出选择,看哪一方面更为重要