[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.这时就会出现下面的情况

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`,KEY `score_index` (`score`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

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

 

  

相关文章

优化MySQL数据库发布系统存储的方法有:1.mysql库主从读写分...
使用mysql的方法:在“我的电脑”→右键→“管理”→“服务”...
在mysql中查看root用户权限的方法:1.命令行启动mysql服务;...
MySQL主从复制是用来备份一个与主数据库一样环境的从数据库,...
运行mysql的方法1.启动mysql服务,在“我的电脑”→右键→“...
开启mysql的方法1.可以通过快捷键win+r,输入cmd,打开窗口,...