mysql模糊查询like语句效率优化

一、模糊查询like效率
在使用msyql进行模糊查询的时候,很天然的会用到like语句,一般状况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级,千万级的时候,查询的效率就很容易显现出来。这个时候查询的效率就显得很重要。

二、更高效的写法
1.索引

SELECT `column` FROM `table` WHERE `field` like 'keyword%';


没加索引情况下是全表搜索,加了索引情况下速度会大幅度提升,但不适用于全部搜索,只适用于"keywork%"关键字开头

2.LOCATE(‘substr’,str,pos)方法

SELECT `column` FROM `table` WHERE LOCATE('keyword', `field`)>0

keyword是要搜索的内容,field为被匹配的字段,查询出全部存在keyword的数据

3.POSITION(‘substr’ IN field)方法

SELECT `column` FROM `table` WHERE POSITION('keyword' IN `filed`)

position能够看作是locate的别名,功能跟locate同样

4.INSTR(str,‘substr’)方法

SELECT `column` FROM `table` WHERE INSTR(`field`, 'keyword' )>0 

5.FIND_IN_SET(str1,str2)方法

SELECT * FROM `person` WHERE FIND_IN_SET('apply',`name`);


原文链接:https://blog.csdn.net/aa2528877987/article/details/121753586

posted @ 2022-07-04 10:36  贵隆  阅读(3061)  评论(0编辑  收藏  举报