gpt4 book ai didi

sql-server - SQL Server - 何时使用聚集索引与非聚集索引?

转载 作者:行者123 更新时间:2023-12-01 16:55:08 26 4
gpt4 key购买 nike

我知道聚集索引和非聚集索引之间的主要区别,并了解它们的实际工作原理。我了解聚集索引和非聚集索引如何提高读取性能。但我不确定的一件事是我会选择其中之一而不是另一个的原因是什么。

例如:如果一个表没有聚集索引,是否应该创建一个非聚集索引,这样做有什么好处

最佳答案

我只是想警告一下:请非常小心选择您的聚集索引!每个“常规”数据表都应该有一个聚集索引,因为拥有聚集索引确实可以加快很多操作的速度 - 是的,加速,甚至是插入和删除!但前提是您选择了良好聚集索引。

它是 SQL Server 数据库中复制最多的数据结构。聚集键也将成为表上每个非聚集索引的一部分。

选择聚类键时应格外小心 - 它应该是:

  • (理想情况为 4 字节)

  • 唯一(毕竟它是“行指针”。如果您不将其设置为唯一,SQL Server 会在后台为您执行此操作,这会花费您几个字节每个条目乘以行数和您拥有的非聚集索引的数量 - 这可能会非常昂贵!)

  • 静态(永远不会改变 - 如果可能)

  • 理想情况下不断增加,这样您就不会出现可怕的索引碎片(GUID 与良好的集群键完全相反 - 由于这个特殊原因)

  • 它应该是不可为空的,并且理想情况下也是固定宽度 - varchar(250) 是一个非常糟糕的集群键

其他任何事情都应该是这些点背后的第二和第三级重要性......

查看 Kimberly Tripp(索引女王)关于该主题的一些博客文章 - 她在博客中写的任何内容都绝对是无价的 - 阅读它,消化它 - 以此为生!

关于sql-server - SQL Server - 何时使用聚集索引与非聚集索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18304376/

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