gpt4 book ai didi

sql - 关于哪些操作索引效果不佳或未使用

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:23 26 4
gpt4 key购买 nike

我正在创建 sql 查询,我在一本书中读到,当使用 NOT 运算符或 LIKE 运算符时,Indexes 不起作用。这句话是多么真实。如果该陈述为真,我们如何避免这种情况。应该如何进行查询来避免这些运算符来完成相同的工作。

sql server 中还有哪些索引被延迟的区域。

最佳答案

如果为列定义了一个索引,则在左侧使用通配符的语句不能使用索引:

WHERE column LIKE '%abc'
WHERE column LIKE '%abc%'

但是其中任何一个都可以使用索引:

WHERE column LIKE 'abc%'
WHERE column LIKE 'abc'

坦率地说,使用 LIKE 进行非常简单的文本搜索 - 如果您确实需要性能良好的文本搜索,请查看全文搜索 (FTS)。全文搜索有它自己的索引。

决定实际上取决于优化器使用哪个索引,但要确保索引不会用于在函数调用中包装列值。例如,这将不使用索引:

WHERE CHARINDEX(column, 'abc') > 0
WHERE CAST(column AS DATETIME) <= '2010-01-01'

您在任何地方操作表数据——尤其是更改数据类型——都会使索引变得无用,因为索引是未更改的值,并且无法与已更改的数据相关联。

关于sql - 关于哪些操作索引效果不佳或未使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3437866/

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