范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

MySql索引下推知识分享

  作者:刘邓忠
  Mysql是大家最常用的数据库,下面为大家带来mysql索引下推知识点的分享,以便巩固mysql基础知识,如有错误,还请各位大佬们指正。 1 什么是索引下推
  索引下推(Index Condition Pushdown,索引条件下推,简称ICP),是MySQL5.6版本的新特性,它可以在对联合索引遍历过程中,对索引中包含的所有字段先做判断,过滤掉不符合条件的记录之后再回表,能有效的减少回表次数(目前我们使用的mysql版本较高,一般大家可能感觉这是正常的,但是mysql5.6之前都不是这样实现的,下面会细细道来)。 1.1 适用条件
  我们先来了解一下索引下推的使用条件及限制: 只支持select。 当需要访问全表时,ICP用于range,ref,eq_ref和ref_or_null访问类型。 ICP可用于InnoDB和MyISAM表,包括分区的InnoDB和MyISAM表。(5.6版本不适用分区表查询,5.7版本后可以用于分区表查询)。 对于InnDB引擎只适用于二级索引(也叫辅助索引),因为InnDB的聚簇索引会将整行数据读到InnDB的缓冲区,这样一来索引条件下推的主要目的减少IO次数就失去了意义。因为数据已经在内存中了,不再需要去读取了。 在虚拟生成列上创建的辅助索引不支持ICP(注:InnoDB支持虚拟生成列的辅助索引)。 使用了子查询的条件无法下推。 使用存储过程或函数的条件无法下推(因为因为存储引擎没有调用存储过程或函数的能力)。 触发条件无法下推。(有关触发条件的信息,请参阅官方资料:Section 8.2.2.3, "Optimizing Subqueries with the EXISTS Strategy".。) 1.2 原理介绍
  首先,我们大致回顾下mysql的基本架构:
  MySQL基本的架构示例图
  MySQL服务层主要负责SQL语法解析、生成执行计划等,并调用存储引擎层去执行数据的存储和查询。
  索引下推的下推其含义就是指将部分上层(服务层)负责的事情,交给了下层(引擎层)去处理。
  在 MySql 5.6 版本之前没有索引下推这个功能,从 5.6 版本后才加上了这个优化项。我们先简单对比一下使用和未使用ICP两种情况下,MySql的查询过程吧。
  1)未使用ICP的情况下:
  - 存储引擎读取索引记录;
  - 根据索引中的主键值,定位并读取完整的行记录;
  - 存储引擎把记录交给Server层去检测该记录是否满足WHERE条件。
  2)使用ICP的情况下:
  - 存储引擎读取索引记录(不是完整的行记录);
  - 判断WHERE条件部分能否用索引中的列来做检查,条件不满足,则处理下一行索引记录;
  - 条件满足,使用索引中的主键去定位并读取完整的行记录(就是所谓的回表);
  - 存储引擎把记录交给Server层,Server层检测该记录是否满足WHERE条件的其余部分。
  2 具体示例
  上面介绍了基本原理,下面使用示例,带大家更直观的进行理解(注:以下示例基于InnoDB存储引擎。)
  首先,我们新建一张用户表(jxc_user),设置id为主键索引,并创建联合索引(name, age)。
  我们先看一下该表主键索引的大致结构示例:
  主键索引结构示例图
  然后我们再看一下该表联合索引的大致结构示例:
  联合索引结构示例图
  如果现在有一个需求,要求检索出表中名字第一个字是张,而且年龄等于10岁的所有用户。示例SQL语句如下: select id,name,age,tel,addr from jxc_user where name like "张%" and age=10;
  根据索引最左匹配原则,上面这个sql语句在查索引树的时候,只能用"张",查到第一个满足条件的记录:id为1。
  那接下来我们具体看一下 使用与未使用ICP的情况。 2.1 未使用ICP的情况
  在MySQL 5.6之前,存储引擎根据联合索引先找到name like ‘张%’ 的主键id(1、4),再逐一进行回表扫描,去聚簇索引找到完整的行记录,返回server层,server层拿到数据后,再根据条件age=10对拿到的数据进行筛选。大致的示意图如下:
  从上图,可以看到需要回表两次,存储引擎并不会去按照age=10进行过滤,相当于联合索引的另一个字段age在存储引擎层没有发挥作用,比较浪费。 2.2 使用ICP的情况
  而MySQL 5.6 以后, 存储引擎会根据(name,age)联合索引,找到name like ‘张%’,由于联合索引中包含age列,所以存储引擎直接再联合索引里按照条件age=10进行过滤,然后根据过滤后的数据再依次进行回表扫描。大致的示意图如下:
  从上图,可以看到只是id=1的数据,回表了一次。
  除此之外我们还可以看一下执行计划,看到Extra一列里Using index condition,就是用到了索引下推。
  3 控制参数
  Mysql索引下推功能默认是开启的,可以用系统参数optimizer_switch来控制是否开启。
  查看状态命令:
  select @@optimizer_switch;
  关闭命令:set optimizer_switch="index_condition_pushdown=off";
  开启命令:set optimizer_switch="index_condition_pushdown=on"; 4 总结
  回表操作:当所要查找的字段不在非主键索引树上时,需要通过叶子节点的主键值去主键索引上获取对应的行数据,这个过程称为回表操作。
  索引下推:索引下推主要是减少了不必要的回表操作。对于查找出来的数据,先过滤掉不符合条件的,其余的再去主键索引树上查找。 5 参考文献https://dev.mysql.com/doc/refman/5.6/en/index-condition-pushdown-optimization.html http://mysql.taobao.org/monthly/2015/12/08/

DNF中有哪些装备可以让奶妈瞬间起飞?奶妈作为一个辅助职业,一直以来都特别受到广大玩家欢迎,不仅能辅助能控制还能输出,一举三得谁都喜欢,当然有了这些装备之后自己也能爽的起飞!圣耀十字架圣耀十字架是奶妈的最终武器,无论是儿子现在高二选的,物理,生物,地理,考试总是590分上下。到高考能突破600分吗,该怎么学习?首先说您的选科组合。这个选科组合是我个人对倾向于理科的同学最推荐的一个组合。从报考的角度讲,物理几乎是必选,这个没什么好说的。化学和生物里面,个人也推荐生物。不是说化学不好,但生物去买彩票想中大奖的这种心理是否健康正常?你怎么看?买彩票的基本都是穷人,小玩玩可以,千万别抱希望!买彩票这个事儿,我还真的有话说。很早了,我无意中发现了卖彩票点,记不起哪一年了。反正,那时福彩没有3D,体彩还没有排列三,排列五。至一日三餐改成两餐,是有害还是有益健康?一日三餐改成两餐,是有害健康还是有益健康。这个问题谁也没有亲自实践过,那么咱们可以通过已经知道的知识来分析一下。首先咱们分析一下餐饮与健康的关系。大家都知道,人之所以能活着,是依靠如果你是楚门,你会活到30岁才发现周围的一切都是假的吗?三十岁的年纪正是青壮年,首先要有一种年轻人的冲劲,不要选择安逸,人生爱拼才会赢!未来的好日子需要创造。撸起袖子加油干才是王道,想想辛苦了一辈子的父母,难道你不知道该怎么做吗?一天天为什么同样是反向放技能,今日的mystic和往日的韦神受到了不一样的待遇?首先来分析这两个人的失误对比赛有影响吗?答案是都没有,韦神的反向QQ中了也翻不了盘。Mystic那波闪现没反也只能保住自己的命。换句话说对比赛的改变只有一个人头的300块,影响不大王者荣耀,五个主播打得过五个职业选手吗?为什么?这个真的很难打的过,不是说主播的技术不行,相反他们的技术都是天花板级别的,有的时候主播对某个英雄的认知甚至超过职业选手。因为职业选手平时的训练都是系统的训练,不像主播对一个英雄可能焦虑症其实就是身体虚吗?焦虑症发作是由于神经太过兴奋不能自抑而引发的极度紧张,心慌气短,胸闷等状态的频死感,诱发焦虑症目前没有什么定论,并不能证明是遗传还是其他什么原因,但是确有很多规律和诱因所至。焦虑症缺少了莫兰特以后,灰熊过去11战10胜,这支球队到底发生了什么?灰熊少了莫兰特为什么这么强,首先来说说莫兰特。但不能说因为这个就交易莫兰特,莫兰特是这支球队唯一的明星。莫兰特本赛季场均得到24。1分5。6篮板6。8助攻1。6抢断,投篮命中率近4为什么有人宁愿每年买一部千元机,也不愿一次买部高端机?每年都买千元机说明每年只有这些手机预算,一次拿出4000元和分三年拿出4000元还是很不一样的。千元机虽然不高端但是够用,而且每年总能换新的用。何况这年头手机更新换代这么快,你就真探探怎么样,这个软件靠谱吗?其实我觉得不太可靠。首先那些短信都是营销手段,骗你说有多少多少人喜欢你,让你重新下载探探。不用管他就好了,其实都是骗人的,而且里面的人也大多都只是去玩玩的,网图什么的到处都是,还有
俄罗斯大规模军演模拟闪击北约俄罗斯国防部8月29日发布公告称,东方2022演习将于2022年9月1日至7日在俄东部军区的7个训练场以及鄂霍次克海等水域及沿岸地区进行演习训练。北约这些年实力一天不如一天,影响力最新动态乌克兰已运出100万吨粮食俄罗斯呼吁落实俄粮食出口协议新华社北京8月28日电综合新华社驻外记者报道乌克兰总统泽连斯基26日说,自黑海港口农产品外运协议执行以来,已有100万吨粮食通过乌克兰的三个港口运往国外。同日,俄罗斯外交部呼吁落实CBA22top1接下来讲一讲top5top1TOP5广东东莞赵睿在今年广东交易周鹏之后赵睿无疑会成为球队的新队长,新赛季的重担也将担负在他的肩上,杜指导也会在他身上安排更多的战术,不管是战术发起还连续2年自掏腰包带凉山小黑鹰到东单打球,吴优一共花了多少钱?篮球最美好的样子是什么?篮球最美好的样子是没有贫富差距,就像街球王吴优说的你喜欢篮球,我喜欢篮球,我们是朋友,有一天你不喜欢篮球了,我们就不是朋友。近期,一段吴优鼓励因为家庭原因准北溪一号管道无限期关停停了!彻底关停!美国欧盟一直叨叨的俄罗斯能源武器终于开启,这条自冷战时期都没有停止的合作居然在新世纪全球化浪潮中彻底断绝。8月30日,俄罗斯宣布对北溪一号管道进行为期三天的常规检修因拖欠近3000万财顾费被银河证券告上法庭,金贵银业对方专业度不够金贵银业近日发布公告称,公司收到了湖南省郴州市苏仙区人民法院出具的应诉通知书。诉讼请求为被告金贵银业向原告中国银河证券股份有限公司(以下简称银河证券)支付财务顾问费2,780万元(民进党心心念念的美舰来了然而只是无效通过8月28日,东部战区新闻发言人施毅表示,美安提坦号钱斯洛斯维尔号巡洋舰过航台湾海峡并公开炒作,中国人民解放军东部战区对美舰过航行动全程跟监警戒,一切动向尽在掌握。战区部队保持高度戒韩国总统太宠妻!身价4千多万,9成都在妻子名下,金建希嫩成少女韩国总统尹锡悦的美貌妻子金建希最近又上了热搜了,49岁的金建希再过几天就要迎来50岁生日,而就是这样一位有着少女脸庞的第一夫人,自从尹锡悦上任之后,金建希就一直备受争议。从履历造型李瑞英儿子坠楼仍坚守岗位,工作28年零失误,为何退休后饱受争议?1998年,央视主持人李瑞英,正准备直播新闻联播的时候,一个电话扰乱了她的思绪。你儿子不慎坠楼,浑身是血,正在医院抢救。一句话,彻底让李瑞英慌了神,她迫不及待地想要赶往医院,可距离水浒传中,杨志犯的三个错误,聪明人要学会懂得规避关于水浒传中梁山好汉的故事大家都比较耳熟能详了,如果从梁山108位头领中选出一个最悲情的人的话,我认为杨志是首当其冲的,杨志和呼延灼关胜等人一样都是将门之后,本来应该有着大好的前途油价调整消息今天9月2日,调价后各地9295号汽油最新价上周沙特阿拉伯可能在9月份会议上减产的言论,一度让国际油价咸鱼翻身,布伦特原油不仅重新收复200日均线,而且还突破了105美元桶,然而,本周国际油价的表现让我们看到这就是在浪费时间