mysqllikerever_mysql优化like查询
1. like %keyword 索引失效,使⽤全表扫描。但可以通过翻转函数+like前模糊查询+建⽴翻转函数索引=⾛翻转函数索引,不⾛全表扫描。东风起亚
2. like keyword% 索引有效。
3. like %keyword% 索引失效,也⽆法使⽤反向索引。
====================================================================
1. 使⽤下⾯的函数来进⾏模糊查询,如果出现的位置〉0,表⽰包含该字符串。
查询效率⽐like要⾼。
如果: table.field like ‘%AAA%’ 可以改为 locate (‘AAA’ , table.field) > 0
LOCATE(substr,str)
POSITION(substr IN str)
谭晶我是歌手
返回⼦串substr在字符串str第⼀个出现的位置,如果substr不是在str⾥⾯,返回0。
使⽤instr
lect count(*) from table t where lumn,’xx’)> 0
这种查询效果很好,速度很快。
2. 查询%xx的记录
lect count(c.c_ply_no) as COUNT神经元的功能
from Policy_Data_All c, Item_Data_All i
where c.c_ply_no = i.c_ply_no
and i.C_LCN_NO like ’%245′
大白菜烧肉在执⾏的时候,执⾏计划显⽰,消耗值,io值,cpu值均⾮常⼤,原因是like后⾯前模糊查询导致索引失效,进⾏全表扫描itsskin
魔力美食解决⽅法:这种只有前模糊的sql可以改造如下写法
lect count(c.c_ply_no) as COUNT
from Policy_Data_All c, Item_Data_All i
where c.c_ply_no = i.c_ply_no
and rever(i.C_LCN_NO) like rever(‘%245′)排球赛
使⽤翻转函数+like前模糊查询+建⽴翻转函数索引=⾛翻转函数索引,不⾛全扫描。有效降低消耗值,io值,cpu值这三个指标,尤其是io值的降低。
>大班体育游戏教案