gpt4 book ai didi

sql - 聚集索引是否比包含包含的非聚集索引更快?

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

我有一个包含 a、b、c、d、e、f、g 列的表,大约有 500,000 行。

有一个经常运行的查询执行 SELECT * FROM table WHERE a = @a AND b = @b AND c = @c .

创建一个 clustered index 更好吗?在 a、b 和 c 上,或者我最好创建一个 non-clustered index关于 a、b 和 c INCLUDE (d, e, f, g) .

自从发出 select * 以来,不确定包含是否有助于加快查询速度。

如有任何帮助,我们将不胜感激!

最佳答案

对于该 SELECT,聚集索引将是最快,但它不一定是正确选择。

聚集索引决定记录的物理存储顺序(这就是每个表只能有一个记录的原因)。因此,虽然它对于该查询来说是最快的,但它可能会减慢其他查询的速度,并且如果这些列之一发生更改,则可能会终止更新和插入,这可能意味着需要在物理上重新定位记录。

如果这些字段(包括包含的字段)中的任何一个被更新,则 INCLUDE 也会加速查询,但代价是额外的存储和额外的索引维护。

我会从 a、b 和 c 上的非聚集索引开始,看看这是否能让您的性能达到合理的水平。任何更多的情况都可能只是用一个领域的速度换取另一领域的缓慢。

关于sql - 聚集索引是否比包含包含的非聚集索引更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16552475/

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