gpt4 book ai didi

sql - 将主键用作身份字段是否很好

转载 作者:行者123 更新时间:2023-12-02 06:12:01 28 4
gpt4 key购买 nike

我已经阅读了很多关于我们是否应具有作为标识列的主键的文章,但是我仍然感到困惑。

使列具有身份是有优势的,因为它可以在连接中提供更好的性能并提供数据一致性。但是与身份相关的一个主要缺点是,即INSERT语句失败时,IDENTITY值仍然会增加。如果回滚一个事务,则不会回滚新的IDENTITY列值,因此最终会导致排序空白。我可以使用GUID(通过使用NEWSEQUENTIALID),但是会降低性能。

最佳答案

间隙应该无关紧要:“身份”列是内部的,并不供最终用户使用或识别。

由于16字节的宽度,GUID会降低性能,甚至会破坏顺序性能。

在对数据进行建模并确定自然键是什么之后,应选择一个标识列来尊重物理实现。也就是说,选择的自然键是逻辑键,但是您选择代理键(身份),因为您知道引擎的工作方式。

或者您使用ORM,让客户端拖尾数据库狗...

关于sql - 将主键用作身份字段是否很好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1720645/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com