zoukankan      html  css  js  c++  java
  • [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`,`gid`,`age`),
      KEY `score_index` (`score`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
    

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

      

  • 相关阅读:
    hdu 5001 从任意点出发任意走d步不经过某点概率
    hdu 5007
    hdu 5009 离散化
    hdu 5011 Nim+拿完分堆
    thinkphp 删除多条记录
    thinkphp 实现无限极分类
    图片生成唯一的名字
    html 标签学习
    PHP比较运算!=和!==
    php使用 set_include_path
  • 原文地址:https://www.cnblogs.com/taoshihan/p/10615595.html
Copyright © 2011-2022 走看看