gpt4 book ai didi

mysql - 我可以为同时使用左右通配符的 LIKE 搜索创建 MySQL 索引吗?

转载 作者:行者123 更新时间:2023-11-29 22:27:09 25 4
gpt4 key购买 nike

我使用的是 MySQL 5.5.37。我有一个带有列的表格

`NAME` varchar(100) COLLATE utf8_bin NOT NULL

我打算对名称列进行部分搜索,例如

select * FROM organnization where name like ‘%abc%’

请注意,我想搜索字符串“abc”出现在任何地方,而不一定是在开头。鉴于此,我可以在列上使用任何索引来优化查询执行吗?

最佳答案

如果您只希望得到一些匹配结果,您仍然可以在主键的帮助下在名称列上创建索引以加快查询速度。

如果您的表有一个主键,例如

org_id int not null auto_increment主键,名称 varchar(100) COLLATE utf8_bin NOT NULL,desc varchar(200) 整理 utf8_bin NOT NULL,大小整数,....

您可以在(名称,org_id)上创建索引

并像这样进行查询:

select * from orgnizations o1 join (select org_id from orgnizations where name like '%abcd%' ) o2 using (org_id) 

应该比原始查询更快

如果您只需要一两个其他列来进行名称搜索,您可以将这些列包含在您的名称索引中并执行如下查询

select org_id, name, size from orgnizations where name like '%abcd%'

仍然比全表扫描快得多

关于mysql - 我可以为同时使用左右通配符的 LIKE 搜索创建 MySQL 索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30176448/

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