【发布时间】:2011-12-16 16:41:54
【问题描述】:
Jeff Atwood's 使用 GUID 的一个缺点是它是
Cumbersome to debug (where userid='{BAE7DF4-DDF-3RG-5TY3E3RF456AS10}')
我同意。我在想,既然 16 字节 ID 不再被认为是一项艰巨的任务,那么 16 字节 + 4 字节 ID 是不是一个实际的折衷方案?
您可以应用聚集索引,并在自动增量 ID 上进行大部分串行(阅读:优化)工作。合并、分发或其他大规模活动将使用 GUID 作为其主要工作。
那么...有人尝试混合两全其美吗?你的事业的结果是什么?当然,存在一个 PK(GUID)在另一个索引字段(自动增量 ID)旁边占用所有索引空间的问题,所以我想这种权衡可能是微妙的和/或特定于一个非常狭窄的场景.
注意:this question 之前已经解决了这个问题,但从管理参照完整性的角度来看。我只是好奇如何将 PK/UK 配置组合在一张桌子上,以及它们对性能和规模的各种影响。本质上,最好将 GUID 用作 PK,并将自动增量用作非唯一索引?将它们作为一对唯一的密钥会更好吗?
感谢您的宝贵时间。
【问题讨论】:
标签: performance database-design primary-key guid unique-key