视频下载 网友评价 课程大纲 报名咨询

关于主键选取的问题

[ 449 查看 / 2 回复 ]

看到网上一些关于主键的解决方法:
1.采用自增
2.采用uniqueidentifier
2.采用自定义的标示

缺点:
1.自增:迁移不方便,发生主键冲突
2.uniqueidentifier:增加时耗费时间

结合我实际工作中的情况,我说下我的体会:
自增型的我认为可以放弃,前段时间我以前的一个项目升级,由于采用的是自增主键,
造成了很的的麻烦,迁移数据太过耗时耗力。

采用uniqueidentifier ,虽然增加的时候可能效率会低些。我现在做的项目更多的倾向于
数据的读取方面,我认为可以采用uniqueidentifier来做为主键。下面这段话时我从网上找的:
。[数据库在创建主键同时,会自动建立一个唯一索引。如果这个表之前没有聚集索引,同时建立主键时候没有强制指定使用非聚集索引,则建立主键时候,同时建立一个唯一的聚集索引。]

采用自定义的组合:我记得以前从网上看到过某个比较大的公司的数据库的设计,他们采用的主键
设计方式是:xx+时间+固定位数的随机数

我认为可以根据项目的不同确定采用哪种方式作为主键

疑惑:建立聚集索引有什么好处

附上篇比较好的文章:
小议数据库主键选取策略
http://kb.cnblogs.com/page/44056/
L Server 索引基础知识(4)----主键与聚集索引
http://blog.joycode.com/ghj/archive/2008/01/04/113373.aspx
1

评分次数

    TOP
    TOP

    我们是否可以把聚集索引设置在时间列上??

    这样对读取速度是否有好处
    TOP