试验联合索引


联合索引顺序是 name,resource

EXPLAIN SELECT NAME FROM resource WHERE CODE in('category_role','btn_user_authorize','btn_roeladd')

所有记录一共只有19行,却检索了19行



EXPLAIN SELECT * FROM resource WHERE NAME in('用户授权','删除角色','btn_roeladd')

name放在条件上,只检索了3行。



EXPLAIN SELECT * FROM resource WHERE CODE in('category_role','btn_user_authorize','btn_roeladd')

条件上只放code,查询字段没有name,selectType是all,说明完全没用到索引



EXPLAIN SELECT * FROM resource WHERE NAME='用户授权'  AND  CODE='category_role'

条件语句把两个索引列都加上,逻辑是and,返回结果不唯一的等值查找可能出现ref



EXPLAIN SELECT * FROM resource WHERE NAME='用户授权' OR CODE='category_role'

逻辑是or,type是all,没有用到索引



EXPLAIN SELECT * FROM resource WHERE NAME !='' 

EXPLAIN SELECT * FROM resource WHERE NAME <>'' 

EXPLAIN SELECT * FROM resource WHERE NAME is not null

以上三句都没有用上索引,type是all

 

总结:联合索引命中率

想用到索引,查询语句中(查询字段或条件语句)必须含 联合索引的最左列。

想高效的用索引,必须把联合索引的最左列放在条件语句上,查询条件最频繁的字段 适合做联合索引的最左列。

条件连接是or无法使用索引


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值