在测试可变字符长度的 MySQL 列中是否存在字符串时,会出现一个关于用于提高效率和速度的最佳方法。两种常见的方法是:
1。 INSTR(列名, 'mystring' ) > 0
2。 columnname LIKE '%mystring%'
在速度方面,我们的测试揭示了一个令人惊讶的结果:INSTR 和 LIKE 在检查子字符串是否存在时表现相同。例如:
INSTR(Name,'search') > 0 LIKE '%search%'
两个查询都扫描了整个表,大约需要 5.54 秒才能完成。然而,当对索引列执行前缀搜索时,仅带有后缀通配符的 LIKE 运算符的性能明显优于 INSTR:
LIKE 'search%'
此优化的前缀搜索仅花费了 3.88 秒。
除了 INSTR 和 LIKE 之外,MySQL 还支持全文搜索以提高性能。但是,当表列使用全文索引并且您要搜索的字符串出现在列开头附近时,这些搜索效率最高。
在实践中,可以选择INSTR 和 LIKE 取决于具体的用例:
以上是MySQL 中的 INSTR 与 LIKE:哪种字符串匹配方法更快?的详细内容。更多信息请关注PHP中文网其他相关文章!