gpt4 book ai didi

sql - 为什么在创建索引时使用 Where 子句?

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

当我阅读 this book ,

我发现我可以创建一个具有 where 条件的索引。

我发现我们可以像这样创建索引

  Create index `<index_name>` on `<table_name>`

或者
  Create index `<index_name>` on `<table_name>` Where (`<Conditions>`)

但是不知道有什么好处?
What are the benefits of a filtered index ?

哪些列在 Where conditions 中最常用?

最佳答案

这样做的明显原因是使索引更具选择性,或者使用它来应用约束:

Create unique index IX_Contacts on Contacts(User_ID) Where (IsDefault=1)

说,对于每个 User_ID ,他们在 Contacts 中可能只有一个默认联系人。表 - 但他们可以拥有尽可能多的非默认联系人,因为系统中的其他约束将允许他们创建。

类似地,尝试为用户查找默认联系人的查询更有可能使用此索引,因为它非常狭窄且具有选择性——如果只有 10% 的联系人是用户的默认联系人,那么此索引将小得多比 (User_ID,IsDefault) 上的索引(这也可以满足这样的查询)

关于sql - 为什么在创建索引时使用 Where 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20190623/

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