MySQL 字符串匹配 INSTR 和 LIKE 的性能比较
在 MySQL 中,在列内搜索字符串时,常用的方法有两种: INSTR 和 LIKE。哪个更快更高效?
INSTR 与 LIKE
INSTR(columnname, 'mystring') >如果在列名中找到“mystring”,则 0 返回 true,而如果在列名中的任何位置找到“mystring”,则 columnname LIKE '%mystring%' 返回 true。 'varchar'、'text'、'blob' 等类型的字符串列支持 INSTR 和 LIKE。
性能测试
在测试中,计数在超过 40,000 行的表中出现“search”,INSTR 和 LIKE 执行相同,大约需要 5.54秒。但是,当使用仅带有后缀通配符(例如“search%”)的 LIKE 时,查询速度明显加快,仅花费 3.88 秒。
全文搜索
尽管原始问题中没有具体提到,但值得注意的是,对于基于文本的查询,全文搜索通常更快。然而,它们需要使用专门的索引,并不总是适合所有场景。
结论
对于全表扫描,INSTR 和 LIKE 都带有前缀和后缀通配符的作用类似。但是,当在文本列开头搜索字符串时,带有后缀通配符的 LIKE 会变得更加高效。在性能至关重要的情况下,考虑使用全文搜索可能会提供最佳结果。
以上是MySQL 中的 INSTR 与 LIKE:哪个字符串匹配函数更快?的详细内容。更多信息请关注PHP中文网其他相关文章!