性能比较:INSTR 与 LIKE
当涉及到在 'varchar' 类型的 MySQL 列中搜索字符串时,' text'、'blob'等,哪种方法效率更高: INSTR(columnname, 'mystring') > 0 或列名 LIKE '%mystring%'?
答案
全文搜索提供最佳性能。然而,当比较 INSTR 和 LIKE 时,两种方法在常规非索引全表扫描中的表现是相同的。
详细比较
在作者进行的测试中,INSTR和 LIKE 表现相同。但是,当使用仅带有后缀通配符的 LIKE(例如列名 LIKE 'search%')对索引列执行前缀搜索时,它的性能明显优于 INSTR。
实现
INSTR 和 LIKE 都从左到右扫描列,将搜索字符串与存储的数据进行比较。 INSTR 搜索完全匹配,而 LIKE 允许通配符(% 和 _)进行部分匹配。
建议
对于不需要前缀匹配的索引列, INSTR 和 LIKE 都是具有相似性能的可行选项。但是,在处理非索引表或仅搜索后缀时,建议使用带有后缀通配符的 LIKE 以获得更快的结果。
以上是MySQL 中的 INSTR 与 LIKE:哪个字符串搜索更高效?的详细内容。更多信息请关注PHP中文网其他相关文章!