Mysql 联合索引使用情况测试

本文详细解析了MySQL中联合索引的使用方式及效果。通过创建包含多个字段的联合索引,可以有效地提升涉及这些字段查询操作的性能。文章通过具体的SQL语句示例,展示了不同查询条件下索引的使用情况,并总结了联合索引的实际效用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 创建索引  xxx是表名  a,b,c是创建索引的字段名
alter  table xxx add INDEX `sindex` (`a`,`b`,`c`);
# 情况一 使用单条件查询时,索引使用情况如下 (只会用到 a 的索引)

# type=ref,key=sindex,key_len=163,ref=const
select * from xxx where a = '1';

# 没有使用到索引 type=all
select * from xxx where b = '1';

# 没有使用到索引 type=all
select * from xxx where c = '1';
## 情况二 使用索引的两个条件

# type=ref,key=sindex,key_len=966,ref=const,const 
select * from xxx where a = '1' and b = '1';

# type=ref,key=sindex,key_len=966,ref=const,const
select * from xxx where b = '1' and a = '1';

# 上面互换位置后,索引使用情况一致,说明sql顺序不会影响索引。感觉应该是mysql在执行查询前,会自动优化。

# type=ref,key=sindex,key_len=163,ref=const 只会用到a索引
select * from xxx where a = '1' and c = '1';

# 没有使用到索引 type=all
select * from xxx where b = '1' and c = '1';
### 情况三 使用索引的三个条件
# type=ref,key=sindex,key_len=1129,ref=const,const,const 使用到3个索引
select * from xxx where a = '1' and b = '1' and c = '1';

总结:
创建a,b,c联合索引就相当于创建了 (a),(a,b),(a,b,c) 3个索引。

有问题请下方留言,感谢!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值