首页 新闻 会员 周边

使用GUID和自增数字ID作为主键,各有什么好处和坏处呢?

1
悬赏园豆:15 [已解决问题] 解决于 2012-05-21 15:39

如题:使用GUID和自增数字ID作为主键,各有什么好处和坏处呢?

码农搞事情的主页 码农搞事情 | 初学一级 | 园豆:20
提问于:2012-05-09 13:04
< >
分享
最佳答案
2

GUID可以做分布式系统。还有就是,Oracle中不原生支持自增。

收获园豆:5
Soar、毅 | 菜鸟二级 |园豆:299 | 2012-05-09 13:59
其他回答(4)
3

自己先顶一下,希望大家指教

码农搞事情 | 园豆:20 (初学一级) | 2012-05-09 13:05
2

我一般都用的是自增ID

淘宝的商品、订单号,微博的ID等等都是用的数字编号

亻寸 日月 月月鸟 | 园豆:202 (菜鸟二级) | 2012-05-09 13:09
5

没什么好处。

1——

GUID过长,看表现形式,至少都有32位,长的38位,浪费存储空间。

2——

GUID是根据硬件设备相关ID以及时间戳生成的

3——

GUID不利于检索、外键关联

 

好处:

1——

一般来说不担心有冲突的影响,而且,根据GUID的生成规则,还能大致知道生成的计算机硬件设备、时间等信息(但这个有多少意义呢)

2——

能在业务层就知道目标ID,而不是数据提交给数据库系统后才确定。

收获园豆:5
无之无 | 园豆:5095 (大侠五级) | 2012-05-09 13:10

好处的第2点是关键。

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2012-05-09 13:24

@水牛刀刀: 确实,这样的确很好

支持(0) 反对(0) 码农搞事情 | 园豆:20 (初学一级) | 2012-05-09 14:12
2

在数据库分表时好处就体现了 

收获园豆:5
dudu | 园豆:31007 (高人七级) | 2012-05-09 14:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册