## 如何让 MySQL LIKE \'%string%\' 在 InnoDB 中高效查询?

Mary-Kate Olsen
发布: 2024-10-25 07:23:29
原创
720 人浏览过

## How Can I Make MySQL LIKE '%string%' Queries Efficient in InnoDB?

优化 InnoDB 中 LIKE '%string%' 的 MySQL 查询

问题描述

在 InnoDB 表查询中使用 LIKE '%string%' 子句时,观察到 'keywords' 列上的索引失效,导致全表扫描。

解决方案

InnoDB 索引针对从索引列开头开始的字符串比较进行了优化。但是,LIKE '%string%' 子句允许搜索词出现在列中的任何位置。此类查询不能使用基于开头的索引,因为搜索词未锚定在字符串的开头。

全文索引作为最佳解决方案

优化InnoDB 中涉及浮动搜索词的查询,应使用全文索引。全文索引是专门为处理此类查询而设计的,因为它们允许灵活的字符串匹配。

升级到 MySQL 5.6.4 或更高版本

InnoDB 对全文索引的支持是MySQL 5.6.4 中引入。如果您的MySQL版本低于5.6.4,建议升级以使用此功能。通过升级到 MySQL 5.6.4 或更高版本,您将能够使用全文索引来优化 InnoDB 中的 LIKE '%string%' 查询。

以上是## 如何让 MySQL LIKE \'%string%\' 在 InnoDB 中高效查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!