0
点赞
收藏
分享

微信扫一扫

联合索引 where 查询的不同情况

若如初梘 2022-01-20 阅读 31

联合索引 where 查询的不同情况

暂时记录一下, 有时间回来更新 , 这里涉及到了 解释器的优化

select count(id) from user 
-- 查看索引
show index from user
-- 删除之前的索引
drop index idx_sex_pass on user

-- 创建联合索引     执行时间  42.493s  
create index `idx_sex_email_nickname` on user(sex,email,nickname)

-- 测试 条件查询 字段顺序 -0.024s  type ref
select username, `password` from user where sex = 'male' and email = 'jack1003@itcast.cn' and nickname = '1003'
--  索引生效,  数据量大, 全表扫描  const
select username, `password` from user where sex = 'male' 
--   走索引  违背最左原则  6.229s
select username, `password` from user where   nickname = '1003' and sex = 'male' and email = 'jack1003@itcast.cn'
-- 没有第一个字段, 不走索引  全表扫描  type All
select username, `password` from user where   email = 'jack1003@itcast.cn' and nickname = '1003'
-- type ref  索引没有完全生效
select username, `password` from user where sex = 'male' and  nickname = '1003'
-- type ref  索引没有完全生效 
select username, `password` from user where  email = 'jack1003@itcast.cn' and nickname = '1003' and sex = 'male' 

-- type range 
select username, `password` from user where  nickname >'1003' and sex = 'male' and email = 'jack1003@itcast.cn' 


select username, `password` from user where   nickname = '10080' and sex = 'male' and email = 'jack10080@itcast.cn'
-- 没有第一个字段 不走索引
select username, `password` from user where   nickname = '10080'
-- type ref  
select username, `password` from user where   nickname = '10080' and sex = 'male' 

举报

相关推荐

0 条评论