gpt4 book ai didi

sql - 添加索引会加速字符串通配符 % 搜索吗?

转载 作者:行者123 更新时间:2023-12-05 05:53:06 26 4
gpt4 key购买 nike

我们正在对包含列字符串的数据库表进行通配符搜索。在列上创建非聚集索引是否有助于通配符搜索?这会提高性能吗?

CREATE TABLE [dbo].[Product](
[ProductId] [int] NOT NULL,
[ProductName] [varchar](250) NOT NULL,
[ModifiedDate] [datetime] NOT NULL,
...
CONSTRAINT [PK_ProductId] PRIMARY KEY CLUSTERED
(
[ProductId] ASC
)
)

建议索引:

CREATE NONCLUSTERED INDEX [IX_Product_ProductName] ON [dbo].[Product] [ProductName])

对于这个查询

select * from dbo.Product where ProductName like '%furniture%'

目前正在使用 Microsoft SQL Server 2019。

最佳答案

创建一个普通的索引不会有帮助(*),但是一个 full-text index会的,尽管您必须将查询更改为如下内容:

select * from dbo.Product where ProductName CONTAINS 'furniture'

(* -- 好吧,它可以稍微有帮助,因为它可以将对表中每一行和每一列的扫描减少到每个行和仅相关列。但是,它不会达到我们通常期望从将扫描变成单次查找的索引获得的数量级性能提升。)

关于sql - 添加索引会加速字符串通配符 % 搜索吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69980547/

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