纠纷奇闻作文社交美文家庭
聚热点
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

MySQL连explain的type类型都没搞清楚,怎敢说精

3月27日 多上心投稿
  我们在使用SQL语句查询表数据时,提前用explain进行语句分析是一个非常好的习惯。通过explain输出sql的详细执行信息,就可以针对性的进行sql优化。
  今天我们来分析一下,在explain中11种不同type代表的含义以及其应用场景。1,system
  应用场景:表中只有一条数据,且存储引擎可以准确的统计到这条数据。
  system一般出现在MyISAM、memory类型的表查询中。
  由于我们一般使用的存储引擎都是InnoDB,所以system这种类型很少会用到。2,const
  应用场景:通过主键或者唯一索引等值查询来定位一条数据。
  比如:selectfromtestwhereid1;
  我们知道,MySQL底层使用B树来保存数据,其结构大体可类似下图,
  那么我们在m字段上创建唯一索引约束,如果想找到m103的记录,通过二分法只需简单两步就可以定位到m103。
  即100102103。
  即使对于一张记录很多的真正的业务表,因为B树矮胖的结构,定位一条唯一索引中的记录,速度也是非常快的。
  可以粗略的认为,这种查询速度是常数级的。
  所以,MySQL就把这种唯一索引或主键(主键也是一种唯一索引)等值匹配的查询定义为const(常数级)。
  需要注意的是,由于唯一索引中允许存在多个null值,所以如果对唯一索引进行null值查询,是没法用const的。3,eqref
  应用场景:在进行多表连接查询时,被驱动表通过主键或唯一索引键进行等值查询。
  比如:SELECTFROMt1LEFTJOINt2ONt1。idt2。
  4,ref
  应用场景:普通二级索引等值查询。
  比如:selectfromt2wherekey24;
  除了唯一索引,我们更多的会使用普通的二级索引。
  由于通过二级索引,可能会查询到多个匹配值,相比const性能差那么一点。
  MySQL就把这种类型的查询定义为了ref。
  在上面我们说到,由于唯一索引可能存在多个null,所以用不了const。
  那对于selectfromt2wherekey2isnull来说,不管是唯一索引还是普通索引,其最多用到ref这种类型。5,refornull
  应用场景:命中索引时,查询条件除了等值查询,还包含null值查询。
  比如:selectfromt2wherekey24orkey2
  其实看名字就很容易理解,MySQL会在B树上,找到key21和key2isnull这两种记录范围值,然后拿到主键id去回表查询相关信息。6,indexmerge
  应用场景:查询条件可以命中多个索引的情况。
  比如:selectfromt3wherekey13orkey24;
  索引合并其实也很好理解,当查询条件可以命中多个索引时,MySQL会尝试在两个索引树查找匹配的条件,然后将结果其合并起来。7,uniquesubquery
  应用场景:查询条件包含子查询,并且子查询的列可以进行主键等值匹配。
  比如:SELECTFROMt2WHEREt2。key2IN(SELECTidFROMt3WHEREt2。key2t3。key2)ORt2。key21;
  通过查看MySQL优化的执行sql,可以看到MySQL将in子查询优化为了exist语句,并且在主键索引上进行了等值查询。
  MySQL优化后的语句:select1selectdbs。t2。idASid,dbs。t2。key2ASkey2fromdbs。t2where((dbs。t2。key2,(((dbs。t2。key2)int3onPRIMARYwhere((dbs。t2。key2dbs。t3。key2)and((dbs。t2。key2)dbs。t3。id)))))or(dbs。t2。key21));8,indexsubquery
  应用场景:查询条件包含子查询,并且子查询的列可以通过索引进行等值匹配。
  比如:SELECTFROMt2WHEREt2。key2IN(SELECTkey1FROMt3WHEREt2。key2t3。key2)ORt2。key21;
  indexsubquery和uniquesubquery的区别在于子查询中的列是唯一索引还是普通的二级索引。9,range
  应用场景:命中索引时,查询某一个范围内的结果。
  比如:selectfromt3wheret3。key11andt3。key13;
  在实际的业务场景中,对某个列进行范围查询还是很常见的需求。10,index
  应用场景:直接在某个索引树上做条件判断,并且不需要回表。
  比如:selectt3。key1fromt3wheret3。key26;
  当我们创建了联合索引idxkey1key2(key1,key2)时,判断条件key26时,其虽然不满足索引的最左前缀原则,但是我们可以遍历idxkey1key2这颗索引树,找到key26的记录即可。
  由于查询结果需要的key1在这个联合索引上,也不需要回表,此时就可以使用index。
  相对来说,index的性能是比较慢的。11,all
  应用场景:直接遍历整个聚簇索引。
  比如:selectfromt1;
  当MySQL无法通过where条件匹配到合适的索引或者因为全部扫描的代价更小时,MySQL就会选择all这种类型来全表扫描。
  这种方式也是最不推荐的。最后
  总得来说,我们在进行查询时,查询类型可分为两大类:全部扫描和索引查询。
  索引查询又可以细分:
  1,唯一索引等值查询。
  2,普通索引等值查询。
  3,普通索引范围查询。
  4,扫描整个索引树。
  对于一条查询sql来说,不同的查询类型虽然结果可能是一样的,但是其性能却可能天差地别。
  不同类型性能从强到差:systemconsteqrefrefrefornullindexmergeuniquesubqueryindexsubqueryrangeindexall。
  建议大家在平时书写sql时,多用explain进行分析,尝试去优化代码,只有不断的实践,才能让自己的sql能力越来越强。
  头条创作挑战赛
  我是程序员拾山,坚持技术分享,期待与大家一起学习成长,也感谢您的点赞和关注。
投诉 评论 转载

两位重庆姑娘争夺挑战世界棋后资格!这项国际大赛本月底将在渝举谭中怡。市棋牌中心供图华龙网新重庆客户端讯(邱小雅)今(3)日,记者从市棋牌中心获悉,由国际棋联主办的20222023年国际象棋女子世界冠军候选人赛决赛将于2023年3月……冬天唯有火锅不可缺少!乳腺癌患者怎么吃才健康?冬天北方各地大雪纷飞,天寒地冻,呼呼的冷风,这个时候不少人就会想念那热腾腾的火锅了。这时有乳腺癌的患者就对火锅能不能吃就十分疑惑:那么,乳腺癌患者到底能不能吃火锅呢?今天不仅告……犹太人的圣地在耶路撒冷,穆斯林的在麦加,中国人的精神圣地何在打卡挑战局圣地何在犹太人有他们的精神圣地耶路撒冷。穆斯林有他们的精神圣地麦加麦地那。基督徒有他们的精神圣地梵蒂冈。中国人有自己的精神圣地吗?‘……中国茶业十大品牌1竹叶青峨眉高山绿茶竹叶青牌茶叶,峨眉高山绿茶,隶属于四川省峨眉山竹叶青茶业有限公司,是唐先洪于1998年创立,是国内首家开启品牌化运营的茶叶企业,首创峨眉高山绿茶品类,……3月安兔兔旗舰性能榜出炉高通无情屠榜,联发科奋力追赶2023年的手机圈相当热闹,发布的新机数量众多,很多人在入手新机时难免一番纠结。如果是对性能有追求的朋友,不妨看看近日安兔兔发布的2023年3月份旗舰手机性能排行,能上榜的机型……近视,无法治愈,只能预防小宝宝的眼睛里,带着祖传的宝贵存款,这就是所谓的远视储备正常宝宝生下来的时候都是远视眼成像落在视网膜后方。随着孩子们身体的不断生长发育,眼球也会慢慢变长,成像就会正好落在视网膜……尼康Z800mmf6。3开发者访谈镜头为鸟类飞机摄影爱好者准在尼康发布尼克尔Z800mmf6。3VRS前夕,我们采访到镜头开发者在尼康光学设计部伊藤匡輝(ItoAtsuki)、产品企划部鈴木伸世士(SuzukiNobuyoshi)、机械……皮耶罗穆里尼奥重新塑造了迪巴拉他比在尤文时更成熟更自信了意大利媒体footballitalia报道,尤文图斯名宿皮耶罗评价说,相比尤文图斯时期,迪巴拉如今变得更加自信、更加成熟了。皮耶罗认为,穆里尼奥在罗马重新塑造了迪巴拉,确立了迪……百年古法红糖搭上新电商快车将订单下到田间地头当传承百年的古老技艺与互联网新思维相碰撞,会产生怎样的化学反应?何春梅用自己的所言所行,作了很好的诠释:引入新电商平台拼多多,帮助家乡的古法手工红糖直连数亿消费者,并通过……吃得越少,活得越久?这种说法到底靠不靠谱?一日三餐该怎么吃?古往今来,人们在追求健康长寿的道路上从未停歇过。那么,人到底能长生不老吗?答案是肯定的,不能,因为衰老是生命发展的自然规律。近来,网上流传着吃得少,活得久的言论,有人说饭……MySQL连explain的type类型都没搞清楚,怎敢说精我们在使用SQL语句查询表数据时,提前用explain进行语句分析是一个非常好的习惯。通过explain输出sql的详细执行信息,就可以针对性的进行sql优化。今天我们来……预算有限但想买一部高性能手机?看看一加Ace2V【手机中国行情】当下的手机市场,性能往往与价格成正比。目前,3000元一下的机型,往往在性能方面表现得都十分一般,大多数都是搭载的骁龙870或者天玑8200,虽然日常够用,但难……
充电接口强制统一,苹果应对方案确定,比过去还要更挣钱北京延庆龙庆峡蒲公英小院民宿,两栋媲美瑞士乡村别墅,慕名而来高龄孕育难难难!如何备孕更高效?当你不在乎别人的眼光时,你猜会发生什么?原来长津湖的彩蛋藏在了这里生搬硬套!柯洁得到马晓春面授机宜,为何还会惨败给王星昊?阿里大股东套现1800亿,如今3个月亏损达465亿,发生了什重构自我之路,从面对阴影开始贝克汉姆家规就是宠妻!贝嫂自拍小贝趴门外,大布的眼神尽是宠溺秋游柳州国庆不必远行,5大主题路线带你奔向秋日浪漫大红包!千亿基金公司合资转外商独资!全国6家,5家都在陆家嘴一加开启夏日冲浪计划长寿版150W超级闪充助力
半个月没到货!韵达等快递被吐槽变慢递红豆薏米粥可以放盐吗红豆薏米放盐还是放糖防脱发洗发水哪个好?防脱发洗发水排行榜2017可说造句用可说造句大全违反禁赌政策印度数字支付应用Paytm被谷歌下架五块钱,给你的鼠标升级顶级手感!简单详尽的微动更换教程叶凯:sheep表复数时,be动词用are还是is????热 拉力造句用拉力造句大全刘太保文安公挽章其九达尊坊离婚要什么条件离婚的条件有哪些数码知识oppoa91怎么设置来电闪光灯设置来电闪光灯教程我爱夏天

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形