关于 LOCATE vs LIKE vs INSTR 性能分析

Posted valarchie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 LOCATE vs LIKE vs INSTR 性能分析相关的知识,希望对你有一定的参考价值。

 

网上很多流传关于mysql字符串对比的函数性能说法是  INSTR >> LOCATE >> LIKE 字符串,所以今天我自己测一下看看真假。

 

技术图片

技术图片

技术图片

这是在字符串较长的情况下测试的结果  一亿次执行的情况下  like 优于 locate 和  instr ,  instr 和 locate 十分接近。

 

 

技术图片

 

技术图片

 

技术图片

 

这是在字符串较短的情况下测试的结果  一亿次执行的情况下  like 仅仅略微慢于 locate 和  instr ,  instr 和 locate 还是十分接近。

 

 

 

 

所以当普通情况下,被搜索的字符串不长的情况下,locate\\instr的性能仅仅比like好一点点,在一亿次执行下只少0.5秒内。

但当被搜索的字符串较长的情况下,like的效率比locate\\instr多出一倍!

 

后面我又测了当字符串前匹配的情况下,locate\\instr 性能差不多, 比like效率高一点点!

 

以上是关于关于 LOCATE vs LIKE vs INSTR 性能分析的主要内容,如果未能解决你的问题,请参考以下文章

LOWER LIKE vs iLIKE

实体框架EF.Functions.Like vs string.Contains

实体框架 EF.Functions.Like vs string.Contains

MySQL date_format() 函数 vs SQL Like 运算符

读取 csv 函数以在 python2 和 python3 中工作(unicode -vs bytes-like object)

MySQL比like语句更高效的写法locate position instr find_in_set