首页 >数据库 >mysql教程 >如何加速 MySQL 中的多列 LIKE 查询?

如何加速 MySQL 中的多列 LIKE 查询?

Susan Sarandon
Susan Sarandon原创
2024-12-11 00:37:10943浏览

How Can I Speed Up Multi-Column LIKE Queries in MySQL?

加速 MySQL 中多列的 LIKE 查询

当面对频繁的 SELECT ... LIKE '%text%' 查询时多列MySQL表,很自然地想知道索引是否可以提高性能。不幸的是,通过引用从左侧开始的字符来工作的索引无法协助 LIKE '%text%' 查询,因为通配符允许在指定文本之前使用不同的字符。

MySQL 建议使用而不是依赖于索引MyISAM 表的全文搜索 (FTS)。 FTS 对文本列中的单词进行索引,即使目标文本出现在列中的任何位置,也能实现高效搜索。

非 MyISAM 表的替代选项

对于不是基于MyISAM,您可以实现自定义索引系统。创建一个索引表,将单词与实际表中相应的 ID 一起存储。这种方法通过将 LIKE '%text%' 查询分解为单个单词搜索来实现高效搜索。

对磁盘使用和性能的影响

FTS 索引确实会消耗额外的资源与传统索引相比的磁盘空间。不过,插入和删除记录不会明显影响FTS索引的性能。

更新:InnoDB表的全文搜索

从MySQL 5.6开始,全文搜索功能还适用于 InnoDB 表,提供符合您的查询要求的高性能搜索解决方案。

以上是如何加速 MySQL 中的多列 LIKE 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn