like 模糊查询对比 字符查询 instr()函数

测试数据库 mysql

like在模糊查询的情况下使用,使用通配符%,like语句要使索引生效,其后不能以%开始,即 like %字段名% 、like %字段名这类语句会使索引失效,而like 字段名、like 字段名%这类语句索引是可以正常使用,也可以换locate的写法、find_in_set等

instr(key, 'downUrl') 在一个字符串(key)中搜索指定的字符(downUrl),查找出现downUrl字符串出现的第一个位置时的位置索引,返回发现指定的字符的位置(index); 
key被搜索的字段,downUrl 被搜索的字符串 


结论:在字符串key里面,字符串downUrl出现的第一个位置(index),index是从1开始计算,如果没有找到就直接返回0,不会有返回负数的情况,下面是效率测试对比:

 

使用like模糊查询,耗时0.019s

like 模糊查询对比 字符查询 instr()函数

 

使用instr()函数,耗时0.008s

like 模糊查询对比 字符查询 instr()函数