MySQL索引,快速记忆法
哈喽,大家好,我是了不起。面试的时候,面试官总喜欢问一些关于MySQL索引的问题,但是如果单纯的记忆,还
哈喽,大家好,我是了不起。面试的时候,面试官总喜欢问一些关于MySQL索引的问题,但是如果单纯的记忆,还是有难度的;今天了不起把MySQL索引的知识点进行汇总,方便大家快速记忆MySQL索引的相关知识点。赶快收藏此文章吧!
索引结构:B+树MySQL中的B+Tree非叶子节点也叫内部节点,只存储 健值(主键的值) + 指针(存储子节点的地址信息)索引其实是一种数据结构
注意B+树是MySQL,索引默认的结构;一张表至少有一个索引(主键索引),是可以有多个索引的
【资料图】
主键索引:健值(主键的值) + 指针(存储子节点的地址信息)
非主键索引:非主键列的值 + 指向下一个节点的指针(存储子节点的地址信息)
所有的数据都存在叶子节点中;同时叶子节点上还存有一个指向相邻叶子节点的指针
如果是聚簇索引(主键索引),叶子节点存储的是实际数据
如果是非聚簇索引,则保存的是聚簇索引的索引key,也就是主键索引的值;查询非聚簇索引会有一个回表操作
B+Tree的每个叶子节点增加了一个指向相邻叶子节点的指针,它的最后一个数据会指向下一个叶子节点的第一个数据,形成了一个有序链表的结构。
为什么B+ 树比B 树更适合作为索引?B+ 树的磁盘读写代价更低 B+ 树的数据都集中在叶子节点,分支节点 只负责指针(索引);B 树的分支节点既有指针也有数据 。这将导致B+ 树的层高会小于B 树的层高,也就是说B+ 树平均的Io次数会小于B 树。B+ 树的查询效率更加稳定 B+ 树的数据都存放在叶子节点,故任何关键字的查找必须走一条从根节点到叶子节点的路径。所有关键字的查询路径相同,每个数据查询效率相当。B+树更便于遍历 由于B+树的数据都存储在叶子结点中,分支结点均为索引,遍历只需要扫描一遍叶子节点即可;B树因为其分支结点同样存储着数据,要找到具体的数据,需要进行一次中序遍历按序来搜索。B+树更擅长范围查询 B+树叶子节点存放数据,数据是按顺序放置的双向链表。B树范围查询只能中序遍历。B+ 树占用内存空间小 B+ 树索引节点没有数据,比较小。在内存有限的情况下,相比于B树索引可以加载更多B+ 树索引。MyISAM与InnoDB 的区别InnoDB支持事务,MyISAM不支持InnoDB支持外键,而MyISAM不支持InnoDB是聚集索引,数据和索引存到同一个文件里;MyISAM是非聚集索引,数据和索引不在同一个文件里;都是使用B+Tree作为索引结构InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快(注意不能加有任何WHERE条件)因为InnoDB的事务特性,在同一时刻表中的行数对于不同的事务而言是不一样的,因此count统计会计算对于当前事务而言可以统计到的行数,而不是将总行数储存起来方便快速查询。InnoDB会尝试遍历一个尽可能小的索引除非优化器提示使用别的索引。如果二级索引不存在,InnoDB还会尝试去遍历其他聚簇索引。
如果索引并没有完全处于InnoDB维护的缓冲区(Buffer Pool)中,count操作会比较费时。可以建立一个记录总行数的表并让你的程序在INSERT/DELETE时更新对应的数据。和上面提到的问题一样,如果此时存在多个事务的话这种方案也不太好用。如果得到大致的行数值已经足够满足需求可以尝试SHOW TABLE STATUS
那么为什么InnoDB没有了这个变量呢?
InnoDB支持表、行(默认)级锁,而MyISAM仅支持表级锁InnoDB表必须有唯一索引(如主键)(用户没有指定的话会自己找/生产一个隐藏列Row_id来充当默认主键),而Myisam可以没有主键Innodb存储文件有frm、ibd,而Myisam是frm、MYD、MYIInnodb:frm是表定义文件,ibd是数据文件
Myisam:frm是表定义文件,myd是数据文件,myi是索引文件
索引失效的场景对索引列使用了函数、表达式或运算符:当查询条件中使用了函数、表达式或运算符时,MySQL就无法使用该列的索引,因为它需要对每行数据进行计算,而不是直接查找索引。查询条件中使用了不等于操作符(<>、!=)、NOT NULL, NOT IN 等模糊查询:当查询条件中使用了LIKE、%或_等模糊匹配符号时,MySQL无法使用索引进行快速定位。OR条件:当查询条件中包含多个OR条件时,MySQL无法使用索引进行快速定位。范围查询:当查询条件中使用了BETWEEN、<、>、<=、>=等操作符时,MySQL只能使用索引中的一部分数据,需要读取更多的数据进行过滤,降低了查询效率。数据类型不匹配,需要隐式转换类型对索引列进行排序,因为它需要将数据按照指定的顺序进行排序复合索引,如果不使用前列,后续列也将无法使用小结正确的使用索引,能够显著提高数据库的查询效率。本文汇总了MySQL索引的常用知识点,帮助大家快速记忆,快快收藏吧。
关键词:
哈喽,大家好,我是了不起。面试的时候,面试官总喜欢问一些关于MySQL索引的问题,但是如果单纯的记忆,还
继长江存储传出将调涨NAND产品价格后,有消息指出韩国三星电子、SK海力士也将跟进3—5%涨幅。详情
今天来聊聊关于哪里有蹦极的旅游景点,深圳哪里有蹦极的文章,现在就为大家来简单介绍下哪里有蹦极的旅游景
读特客户端·深圳新闻网2023年5月26日讯(记者张姗)5月25日下午,福城街道在九龙山体育公园开展道路交通安
1、宁海县茶院乡初级中学前身为茶院公社中心校附设初中班,创设于1968年秋,当初为3班138人。2、1978年迁到茶
“同学们,故事一定要用自然的语气讲出来,千万不能死记硬背……”5月25日13时30分,在嘉善县干窑小学报告
人工智能生成的广告欺骗了广告专家。图片来源:英国《新科学家》杂志网站科技日报记者 刘霞人工智能(AI)
1、明,属水含义:明(会意。2、甲骨文以“日、月”发光表示明亮。3、小篆从月囧,从月,取月之光;从囧,取窗牖
新湖南,主流新媒体,移动新门户。-分享自@新湖南
“天猫”(英文:Tmall,亦称淘宝商城、天猫商城)原名淘宝商城,是一个综合性购物网站。2012年1月11日上午
现代瑞纳(参数|询价)是油箱是43升,以瑞纳2020款1 4L自动GLS跃享版为例,其车身长宽高是4300mm、1705
来为大家解答以下的问题,妖小可爱,魅妖这个很多人还不知道,现在让我们一起来看看吧!1、椒反吸血姬以及续
1、暗梁建筑结构设计专业术语。2、建筑结构力学中的梁的概念可以通俗的理解为:承担竖向荷载的受弯构件。3
为配合做好国家体育场大型活动运输保障工作,2023年5月26日至28日(周五至周日)、5月31日(周三),6月1日
1、孤钵十四十四唐七公子瞬间倾城安思源蜀客匪我思存果果周玉靡宝风宸雪天衣有风桩桩云鹤追顾漫
25日资金面整体保持均衡态势,隔夜资金利率明显回升,可跨月7D品种利率也大幅上行。R001加权平均利率报1 67
黑龙江省精准施策促消费前四个月商品房销售面积同比增长28 5%,购房,黑龙江省,国家统计局,商品房销售面积
想必现在有很多小伙伴对于attend中文是什么意思方面的知识都比较想要了解,那么今天小好小编就为大家收集了
“看!有只麋鹿过来啦!”5月24日下午,一辆满载着游客的观光游览车开进江苏大丰麋鹿国家级自然保护区,
这场拉锯多年的开发者与平台方的较量,将聚光灯打在了支付这一话题上。随着反垄断浪潮,关于支付的生态也
今天来聊聊关于椭圆的极坐标方程公式,椭圆的极坐标方程的文章,现在就为大家来简单介绍下椭圆的极坐标方程
文︱名酒观察丁火文胡吉洲近日,名酒观察从市场层面获悉,山西汾酒将于6月20日执行提价,其中青花20高度每
深圳医疗保险有几个不同的缴费档次,自然深圳医保报销比例上也同样都是不同的。如果产生了医疗费用,符合医
1、李湘前任老公是做钻石生意的李厚霖。2、现任的是当导演的王岳伦。本文到此分享完毕,希望对大家有所帮
来为大家解答以下的问题,你世界火箭怎么做啊,迷你世界火箭怎么做这个很多人还不知道,现在让我们一起来看
Copyright 2015-2022 南极酒业网 版权所有 备案号:粤ICP备2022077823号-13 联系邮箱: 317 493 128@qq.com