专栏首页ShyNodes联合索引与using index condition

联合索引与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`,`gid`,`age`),
  KEY `score_index` (`score`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
206[test1124]>explain select * from index_test where name='taoshihan' and age=1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: index_test
   partitions: NULL
         type: ref
possible_keys: name_gid_age_index
          key: name_gid_age_index
      key_len: 302
          ref: const
         rows: 1
     filtered: 100.00
        Extra: Using index condition
1 row in set, 1 warning (0.00 sec)
  1. type值为range、 ref、 eq_ref或者ref_or_null的时候 , 会使用到索引条件下推技术

原文链接:https://cloud.tencent.com/developer/article/1501354

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [MySQL] 联合索引与using index condition

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

    陶士涵
  • MySQL - order by和 group by 优化初探

    脑海中要有这个联合索引在MySQL底层的B+Tree的数据结构 , 索引 排好序的数据结构。

    小小工匠
  • MySQL - 索引优化案例实操

    当然了,也不是所有的情况都不走索引, MySQL会基于Cost选择一个合适的 ,如果没有走索引,可能mysql内部可能觉得第一个字段就用范围,结果集应该很大,回...

    小小工匠
  • 技术分享 | EXPLAIN 执行计划详解(2)--Extra

    爱可生 DBA 团队成员,擅长故障分析、性能优化,个人博客:https://www.jianshu.com/u/a95ec11f67a8,欢迎讨论。

    爱可生开源社区
  • 聚合索引(clustered index) / 非聚合索引(nonclustered index)

    以下我面试经常问的2道题..尤其针对觉得自己SQL SERVER 还不错的同志.. 呵呵 很难有人答得好.. 各位在我收集每个人擅长的东西时,大部分都把SQL...

    欢醉
  • MySQL Explain用法详解

    key_len的计算首先和字符集相关,如果是字符集是latin1,则一个字符占一个字节;如果是utf8则一个字符占3个字节;并且,如果类型是 varchar这种...

    用户6914642
  • 技术分享 | EXPLAIN 执行计划详解(1)

    爱可生 DBA 团队成员,擅长故障分析、性能优化,个人博客:https://www.jianshu.com/u/a95ec11f67a8,欢迎讨论。

    爱可生开源社区
  • MySQL 索引条件下推 Index Condition Pushdown

    MySQL 索引条件下推 Index Condition Pushdown 出现在MySQL5.6及之后的版本中,能大幅提升查询效率,原因如下:

    二狗不要跑
  • MySQL - 索引下推 Index Condition Pushdown 初探

    MySQL - 索引优化案例实操 中 关于 【Case 3 : like KK% 一般情况都会走索引】 ,我们来详细聊一聊

    小小工匠
  • 技术分享 | EXPLAIN 执行计划详解(2)--Extra

    Extra 是 EXPLAIN 输出中另外一个很重要的列,该列显示 MySQL 在查询过程中的一些详细信息。

    jeanron100
  • MySQL性能优化特性 Index Condition Pushdown

    一 概念介绍 Index Condition Pushdown (ICP)是MySQL 5.6 版本中的新特性,是一种在存储引擎层使用索引过滤数据的一种优...

    用户1278550
  • MySQL explain type详解

    表中只有一行记录(系统表)。是const类型的一个特殊情况。(目前InnoDB已经没有,在MyISAM可以)

    十毛
  • MYSQL EXPLAIN 中的KEY_LEN的说明

    对于explain extended 查看执行计划里面的一些信息作为一个DBA还是必须掌握的。

    二狗不要跑
  • MySQL——通过EXPLAIN分析SQL的执行计划

    在MySQL中,我们可以通过EXPLAIN命令获取MySQL如何执行SELECT语句的信息,包括在SELECT语句执行过程中表如何连接和连接的顺序。

    撸码那些事
  • MySQL——通过EXPLAIN分析SQL的执行计划

    在MySQL中,我们可以通过EXPLAIN命令获取MySQL如何执行SELECT语句的信息,包括在SELECT语句执行过程中表如何连接和连接的顺序。

    撸码那些事
  • 百度后端二面有哪些内容,万字总结(一)

    这是最近一位老朋友去百度面试,应该是面试资深工程师岗位,他跟我讲被问到mysql索引知识点?其实面试官主要还是考察对mysql的性能调优相关,问理论知识其实也是...

    我是阿沐
  • MySQL - 践行索引优化

    key_len : 显示了mysql在索引里使用的字节数,通过这个值可以算出具体使用了索引中的哪些列。

    小小工匠
  • 数栈技术分享:解读MySQL执行计划的type列和extra列

    1、system 表示这一步只返回一行数据,如果这一步的执行对象是一个驱动表或者主表,那么被驱动表或者子查询只是被访问一次。

    数栈DTinsight
  • 【索引潜规则】-覆盖索引、ICP、MRR详解

    上篇文章我们说了创建索引的方法,有聚簇索引、辅助索引、前缀索引、联合索引等,也说了如何利用索引的排序功能,接着本篇文章主要来说一说索引的几种优化策略,首先我们先...

    MySQL数据库技术栈

扫码关注云+社区

领取腾讯云代金券