[MySQL] 联合索引与using index condition

1.测试联合索引的最左原则的时候, 发现了5.6版本后的新特性Index Condition Pushdown

2.含义就是存储引擎层根据索引尽可能的过滤数据,然后在返回给服务器层根据where其他条件进行过滤

3.比如我有这样的联合索引 KEY `name_gid_age_index` (`name`,`gid`,`age`) , 查询的时候where name='taoshihan' and age=1 , 没有按顺序连续查条件, 后面那个age就用不到索引

4.这时就会出现下面的情况

1
2
3
4
5
6
7
8
9
10
CREATE TABLE `index_test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL DEFAULT '',
  `gid` int(11) NOT NULL DEFAULT '0',
  `age` int(11) NOT NULL DEFAULT '0',
  `score` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `name_gid_age_index` (`name`,`gid`,`age`),
  KEY `score_index` (`score`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

5. type值为range、 ref、 eq_ref或者ref_or_null的时候 , 会使用到索引条件下推技术

 

  

posted @   唯一客服系统开发笔记  阅读(4693)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-03-28 [日常] 搭建golang开发环境
2016-03-28 [android] 采用服务执行长期后台的操作
2016-03-28 [android] 自定义广播事件
2016-03-28 [angularjs] 前端路由实现单页跳转
点击右上角即可分享
微信分享提示
1
chat with us