MySQL 列字符串匹配:INSTR 与 LIKE
在类型为 'varchar'、'text 的 MySQL 列中搜索子字符串时' 或 'blob',出现了两种常见的搜索方法:INSTR 和 LIKE。然而,哪种方法更有效?
问题集中在使用 INSTR 函数来定位指定字符串的位置的 INSTR 或使用通配符模式匹配的 LIKE 是否更优化选择。
性能比较
基准测试显示,对于全表扫描时,INSTR 和 LIKE 都表现出相似的性能:
INSTR( columnname, 'mystring' ) > 0: 5.54 sec columnname LIKE '%mystring%': 5.54 sec
但是,在索引列上执行前缀搜索时出现一个关键区别:
Name LIKE 'search%': 3.88 sec
在这种情况下,LIKE 仅使用后缀通配符明显优于 INSTR。
替代方案:FULLTEXT搜索
虽然 INSTR 和 LIKE 对于字符串匹配都非常有用,但值得注意的是,FULLTEXT 搜索在子字符串搜索方面的效率更高。它们利用索引单词列表,实现闪电般的性能,尤其是在搜索大型列时。当速度至关重要时,请考虑使用全文。
以上是MySQL 字符串匹配:INSTR 与 LIKE:哪个更高效?的详细内容。更多信息请关注PHP中文网其他相关文章!