gpt4 book ai didi

sql - 聚簇索引必须是唯一的吗?

转载 作者:太空狗 更新时间:2023-10-30 01:37:26 25 4
gpt4 key购买 nike

如果聚簇索引不唯一会怎样?它会导致性能不佳,因为插入的行流向某种“溢出”页面吗?

它是独一无二的吗?如果是的话,怎么做到的?使其独一无二的最佳方法是什么?

我问是因为我目前正在使用聚集索引将我的表划分为逻辑部分,但性能一般,最近我得到了 the advice使我的聚簇索引独一无二。我想听取第二意见。

最佳答案

它们必须是独一无二的,但肯定会受到鼓励。
我还没有遇到过要在非唯一列上创建 CI 的场景。

如果你 create a CI on a non-unique column 会发生什么

If the clustered index is not a unique index, SQL Server makes any duplicate keys unique by adding an internally generated value called a uniqueifier

这会导致性能不佳吗?

添加uniqueifier肯定会增加一些计算和存储开销。
这种开销是否明显取决于几个因素。

  • 表格包含多少数据。
  • 插入率是多少。
  • CI 在选择中的使用频率(当不存在覆盖索引时,几乎总是如此)。

编辑
正如 Remus 在评论中指出的那样,确实存在创建非唯一 CI 是合理选择的用例。我没有遇到过这些场景中的任何一个,仅表明我自己缺乏接触或能力(选择你的选择)。

关于sql - 聚簇索引必须是唯一的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4332982/

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