SQL SERVER 数据库表主键类型浅析
本文赞同:
①主键是必需的
②主键应和业务无关
③主键是单列的
④自记录插入后,主键不会被更新
===========================================================
1.自动增长的数值类型
即新建一个ID字段,自动增长。
优点:数字型,占用空间小,易排序。数据库自动编号,速度快。增量增长,聚集型主键按顺序存放,有利于检索非常。
缺点:手动要插入指定ID的记录时会显得麻烦,尤其是当系统与其他系统集成时,需要数据导入时,很难保证原系统的ID不发生主键冲突。
2.控制增长的字符串类型
是第一种方案的改进版。为方便以后的数据导入,可以用字符串类型存储纯数字的主键(纯数字好处不啰嗦)。用一张表维护最后插入记录的主键,解决max()带来的性能问题,并用存储过程为新插入的记录生成主键。
3.GUID
优势:具有唯一性,在任何情况下,可以产生全球唯一的值,方便数据导入。
不足:结构过长且无序,不易记忆,索引的空间大,所以检索时间长。GUID的产生不是以一定的次序产生,对于按主键物理索引的数据库来说,当新的GUID进来时,它会把所有GUID重新排序,这将影响数据插入效率。