时不时地,我看到使用GUID的一个系统,我问自己,这多少会影响性能。我曾经在一个使用GUID的系统上工作过,它是由一个“高级开发人员”写的,他总是说这是最好的选择等等。我运行了多个测试来检查GUID的性能与自动增量,自动增量秒每个查询...
我想知道什么情况下我应该使用GUID而不是多个主键/自动增量。
时不时地,我看到使用GUID的一个系统,我问自己,这多少会影响性能。我曾经在一个使用GUID的系统上工作过,它是由一个“高级开发人员”写的,他总是说这是最好的选择等等。我运行了多个测试来检查GUID的性能与自动增量,自动增量秒每个查询...
我想知道什么情况下我应该使用GUID而不是多个主键/自动增量。
还有吨这个问题的辩论/意见/答案围绕着,一些在这里和许多更多,如果你谷歌它。
的GUID(唯一标识符在MSSQL)是良好的按键提供了以下优点:
1)您可以将对象插入数据库之前自己创建密钥。这使您可以创建第N个记录(外键引用)的主要细节,而无需先向数据库询问下一个主记录键将是什么。
2)您可以为系统范围内的任何记录创建唯一的密钥,这对于使用实体的类层次结构的ORM数据库非常有用。
3)您可以硬编码指定特定记录的guid。示例可能是主“根”用户记录,主“代理”机构记录(如果您创建公司/机构层次结构),预定义查询(如性别,安全角色)。
关于优化,是使用任何常用的键的GUID会减慢你的数据库,但你可以使用数据库优化的GUID(你必须谷歌的东西)。本质上,数据库优化的GUID使GUID更加顺序,但保留足够的随机部分以保持它们的独特性。