您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

索引是从字符串的开头到结尾建立的。使用LIKE 'whatever%'type子句时,MysqL可以使用那些基于开始的索引来whatever快速查找。

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

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

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

MySQL 2022/1/1 18:18:58 有536人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶