加速 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中文网其他相关文章!