首页 新闻 会员 周边

表结构中主键长度太长会影响性能吗?

0
悬赏园豆:30 [已解决问题] 解决于 2009-05-29 11:05

这段时间在外面实施一个项目,发现表结构中一个字段(是主键)位数很不够用,表中只有20位,而实际上20位根本不够用,其实40位差不多,但是当时我不知道怎么搞得,一发狠,由20位改成了100位(当然,其他用到该字段的表中也作了改动)。后来,被项目经理知道了,被很批了一顿。说我改得太长了,将来会影响系统性能。

我想请教一下,主键位数太长到底会不会影响系统性能?有哪些影响?

注意:(我所改动的这个表中这个主键,在其他很多表(至少9张表)中都用到了。)

太平洋在望的主页 太平洋在望 | 初学一级 | 园豆:155
提问于:2009-05-22 15:36
< >
分享
最佳答案
0


30 分钟快快乐乐学 SQL Performance Tuning
http://www.cnblogs.com/WizardWu/archive/2008/10/27/1320055.html  

1、数据库设计与规划

● Primary Key 字段的长度尽量小,能用 small integer 就不要用 integer (如: 若确定此表的数据量不会超过  32000 条记录)。
例如员工数据表,若能用员工编号当主键,就不要用身分证号码。

否则会占用过多的 index 和硬盘空间 (数据量越多,爆增越快),
index 长度过长,也会影向查找、JOIN 时 index 的搜寻性能。

2、适当地建立索引

● 用来建立索引的字段,长度不宜过长,不要用超过 20 个 Byte 的字段,如:地址。


参考书籍:
SQL Server 2005 Performance Tuning 性能调校 (台湾书籍,有简体中文翻译本):
作者:胡百敬、姚巧枚、刘承修

WizardWu | 小虾三级 |园豆:1402 | 2009-05-22 16:44
其他回答(2)
0

有影响,但不会非常明显。如果真想优化就用自增长的Identity当主键,原来的主键做一个Unique约束。

Azuresong | 园豆:3565 (老鸟四级) | 2009-05-22 17:28
0

你把字段从40设为100,性能上不会有什么影响,即使有影响也是比较小的,可以忽略不计

LoveJenny | 园豆:532 (小虾三级) | 2009-05-24 09:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册