gpt4 book ai didi

sql - SQL 中多个索引的正确用法 (SQL Server 2014)

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

在 SQL Server 中创建索引的新手。假设我有 3 列 A、B、C,其中没有一列是我的主键。我正在使用 WHERE 子句创建许多查询,其中包含这些子句的任意和所有组合。因此,某些 WHERE 子句可能仅包含 A,其他子句可能包含 A 和 B,其他子句可能包含 B 和 C,有些子句可能包含全部三个,等等。

  1. 我应该为每个组合创建索引吗?

  2. 他们是否应该将这些列包含为“包含的列”(如 https://msdn.microsoft.com/en-us/library/ms190806.aspx )

最佳答案

您可以在 (A, B, C) 上创建复合索引,但前提是您的查询始终使用该索引的n 个最左边的列,即:

  • 您始终使用 WHERE 中的所有三列进行查询条款
  • 或者您使用 AB
  • 或者您只使用 A

(A, B, C) 上的复合索引将不适用于查询:

  • 使用 BC
  • B
  • C

如果您有这样的查询,那么是的,您可能需要分别在每个列上创建三个单独的索引。

但请记住:虽然索引可能会加快查询速度,但它总是会导致 INSERT 的维护开销, UPDATEDELETE (因为索引必须与表中的实际数据保持同步)。

因此,索引越少越好 - 不要索引过多!这通常比根本没有索引更糟糕......

关于sql - SQL 中多个索引的正确用法 (SQL Server 2014),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35484224/

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