主键生成策略
|
优点
|
缺点
|
自动增长字段
|
1.
使用简单
|
1.
不同数据库获取当前值方式不同;
2.
难以应用在多个数据库间进行数据迁移的情况。
3.
不能集群化
|
手动增长型字段
|
1.
可以获得最新键值
2.
可以确保数据合并过程中不会出现键值冲突
|
1.
通常情况下需要建立一张单独的表存储当前主键键值;
2.
增加一次数据库访问来获取当前主键键值;
3.
考虑并发冲突等,增加系统的复杂程度。
4.
不能集群化
|
使用
GUID
|
1.
直接生成
GUID
,获得最新键值以填充主键,使用方便;
2.
可以确保数据合并过程中不会出现键值冲突;
3.
避免了前两种方式获取当前键值所增加的开销。
|
1.
占用较多存储空间;
2.
索引耗时;
3.
在多表链接查询时效率不如
int
型
|
使用
“COMB”
类型
|
1.
保留
GUID
的已有优点;
2.
利用时间信息与
GUID
组合起来,增加有序性以提高索引效率。
|
1.
需要设计
COMB
的生成算法;
2.
和
GUID
一样占用较多存储空间;
3.
在多表链接查询时效率不如
int
型,但优于
GUID
。
|