组合索引 高效建立组合索引,可以提高查询效率。
创建(a,b,c)3个字段的组合
可以使用
where
a=
或者
where
a=
b=
或者
where
a=
b=
c=
等条件查询
如果按照如下方式使用,不会走该索引
EXPLAIN SELECT * from tb_test
WHERE
`b` = '1'
and `c` = '1'
order by `a`;
复制
如何建立索引
select
*
from table
where
a=''
and b=''
order by c
复制
新建表
CREATE TABLE `tb_test` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(255) DEFAULT NULL COMMENT '姓名',
`age` int(11) DEFAULT '0' COMMENT '年龄',
`address` varchar(255) DEFAULT NULL COMMENT '地址',
`city` varchar(255) DEFAULT NULL COMMENT '所在城市',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Test';
复制
如果建立 a,b组合索引
KEY `idx_age_address` (`age`,`address`) USING BTREE
复制
Extre
Using index condition; Using filesort
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
1 | SIMPLE | tb_test | ref | idx_age_address | idx_age_address | 1028 | const,const | 1 | 100 | Using index condition; Using filesort |
如果建立 a,b,c组合索引
KEY `idx_age_address_name` (`age`,`address`,`name`) USING BTREE
复制
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
1 | SIMPLE | tb_test | ref | idx_age_address_name | idx_age_address_name | 1028 | const,const | 2 | 100 | Using index condition |
Extre
Using index condition
对于order by c 排序
如果将c加入到组合索引中。在执行计划内。MySQL执行计划将不执行Using filesort
文章转载自董源龙,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1285次阅读
2025-03-13 11:40:53
MySQL8.0统计信息总结
闫建(Rock Yan)
483次阅读
2025-03-17 16:04:03
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
456次阅读
2025-03-13 14:38:19
Ogg23ai高手必看-MySQL Innodb Cluster跟oracle的亲密接触
曹海峰
452次阅读
2025-03-04 21:56:13
SQL优化 - explain查看SQL执行计划(一)
金同学
388次阅读
2025-03-13 16:04:22
MySQL突然崩溃?教你用gdb解剖core文件,快速锁定“元凶”!
szrsu
349次阅读
2025-03-13 00:29:43
MySQL生产实战优化(利用Index skip scan优化性能提升257倍)
chengang
326次阅读
2025-03-17 10:36:40
MySQL数据库当前和历史事务分析
听见风的声音
257次阅读
2025-04-01 08:47:17
一键装库脚本3分钟极速部署,传统耗时砍掉95%!
IT邦德
235次阅读
2025-03-10 07:58:44
MySQL8.0直方图功能简介
Rock Yan
226次阅读
2025-03-21 15:30:53