在innoDB中优化MySQL LIKE'%string%'查询

在innoDB中优化MySQL LIKE'%string%'查询,第1张

在innoDB中优化MySQL LIKE'%string%'查询

索引是从字符串开头到结尾建立的。使用

LIKE'whatever%'
type子句时,MySQL可以使用那些基于开始的索引
whatever
快速查找。

但是切换到

LIKE'%whatever%'
会删除字符串开头的锚点。现在,无法使用基于开始的索引,因为您的搜索词不再锚定在字符串的开头-它“浮动”在中间的某个位置,必须搜索整个字段。任何
LIKE'%...
查询都不能使用索引。

这就是为什么如果您所做的只是“浮动”搜索,就使用全文索引的原因,因为它们是针对此类使用而设计的。

需要特别注意的是:从5.6.4版本开始,InnoDB现在支持全文索引。因此,除非您不能升级到至少5.6.4,否则您将无法使用InnoDB *
全文本搜索。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5150206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存