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

MySQL面试题InnoDB引擎为什么推荐使用自增ID作为主键?

  回答:MySQL InnoDB 引擎底层数据结构是 B+ 树,所谓的索引其实就是一棵 B+ 树,一个表有多少个索引就会有多少颗 B+ 树,MySQL 中的数据都是按顺序保存在 B+ 树叶子节点上的。
  MySQL 在底层又是以数据页为单位来存储数据的,一个数据页大小默认为 16k,当然你也可以自定义大小,也就是说如果一个数据页存满了,MySQL 就会去申请一个新的数据页来存储数据。如果主键为自增 id 的话,MySQL 在写满一个数据页的时候,直接申请另一个新数据页接着写就可以了。如果主键是非自增 id,为了确保索引有序,MySQL 就需要将每次插入的数据都放到合适的位置上。
  当往一个快满或已满的数据页中插入数据时,新插入的数据会将数据页写满,MySQL 就需要申请新的数据页,并且把上个数据页中的部分数据挪到新的数据页上。这就造成了页分裂,这个大量移动数据的过程是会严重影响插入效率的。
  自增id 可以保证每次插入时B+索引是从右边扩展的,可以避免B+树频繁合并和分裂(对比使用UUID而言)。如果使用字符串主键和随机主键,会使得数据随机插入,效率比较差。
  如果表记录超过1万行,建议用自增数字当主键,类型用BIGINT UNSIGNED。 下面有详细的解释。
  一、InnoDB中的B+树
  先理解InnoDB中的B+树,如图所示。
  InnoDB使用聚集索引,数据记录本身被存于主索引(一颗B+树)的叶子节点上。这就要求同一个叶子节点内(大小为一个内存页或磁盘页)的各条数据记录按主键顺序存放,因此每当有一条新的记录插入时,MySQL会根据其主键将其插入适当的节点和位置,如果页面达到装载因子(InnoDB默认为15/16),则开辟一个新的页(节点)。
  如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。如下图所示:
  这样就会形成一个紧凑的索引结构,近似顺序填满。由于每次插入时也不需要移动已有数据,因此效率很高,也不会增加很多开销在维护索引上。
  如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新纪录都要被插到现有索引页的中间某个位置:
  此时MySQL不得不为了将新记录插到合适位置而移动数据,甚至目标页面可能已经被回写到磁盘上而从缓存中清掉,此时又要从磁盘上读回来,这增加了很多开销,同时频繁地移动、分页操作造成了大量的碎片,得到了不够紧凑的索引结构,后续不得不通过OPTIMIZE TABLE来重建表并优化填充页面。
  因此,只要可以,请尽量在InnoDB上采用自增字段做主键。
  二、尽量使用更小的主键
  在满足业务需求的情况下,尽量使用占空间更小的主键。主键占用空间越大,每个页存储的主键个数越少,B+树的深度会变长,导致IO次数会变多。普通索引的叶子节点上保存的是主键 id 的值,如果主键 id 占空间较大的话,那将会成倍增加 MySQL 空间占用大小。
  三、什么时候不需用自增主键?
  (1)数据量小
  数据量很小,小到全表扫描效率比扫描索引树要高时,不适合建立索引,就更没有自增主键的必要了。
  数据量千级,索引树大小不大,对性能和空间影响都不会很大。
  (2)KV场景
  在全表只有一个唯一索引(Key-Value场景),且读多写少的前提下,应尽量避免查询时回表(也就是搜索两颗索引树),这种情况可以考虑用业务字段做主键。
  四、主键自增带来的劣势是什么?
  在高并发的场景下,自增主键也有一些弊端。
  在InnoDB中按主键顺序插入可能会造成明显的争用。主键上界会成为"热点",因为所有的插入都发生在这里,所以并发插入可能导致间隙锁竞争。另一个热点可能是AUTO_INCREMENT锁机制:如果遇到这个问题,则可能需要考虑重新设计表或者应用,或者更改innodb_autoinc_lock_mode配置。
  从MySQL 5.1.22版本开始,InnoDB存储引擎中提供了一种轻量级互斥量的自增长实现机制,这种机制大大提高了自增长值插入的性能。并且从该版本开始,InnoDB存储引擎提供了一个参数innodb_autoinc_lock_mode(自增锁模式)来控制自增长的模式,该参数的默认值为1或者2。
  show variables like "innodb_autoinc_lock_mode";
  参数innodb_autoinc_lock_mode总共有三个有效值可供设定,即0、1、2。从MySQL 8.0 开始默认是 2。
  三种模式简要说明:
  0:traditonal (每次都会产生表锁)
  1:consecutive (会产生一个轻量锁,simple insert会获得批量的锁,保证连续插入)
  2:interleaved (不会锁表,来一个处理一个,并发最高)(此处已添加圈子卡片,请到今日头条客户端查看)

4。企业如何利用价格策略开发客户?这是一个很好的问题,因为我们都知道,市场营销有4P策略,其中就包括价格策略。企业在发展的不同历史时期,以及不同类型的企业,价格策略是不一样的,下面分别叙述。对于传统制造企业来说,质企业一体化管理云平台对酒水饮料行业有什么作用?传统行业也在努力向上游推出一系列新产品,矿泉水品牌雨后春笋般涌现,满足了更多消费者的需求。随着中国互联网用户的快速增长和年轻化,互联网的使用对矿泉水行业越来越重要。矿泉水产业作为传三星大手笔调整高层人事,为甩开中国企业猛追韩国三星电子12月7日发布消息称,领导3个主要部门的3名首席执行官(CEO)将全部撤换。这是该公司4年来首次更换CEO。今后将把智能手机和家电部门合并为产品部门进行一体运营,采用产docker搭建yapi接口管理系统1。启动MongoDBdockerrundnamemongoyapimongo2。获取yapi镜像dockerpullregistry。cnhangzhou。aliyuncs。co华为智能眼镜12月23日发布,搭载HarmonyOS系统支持万物互联?大家应该都知道本月的23日是华为的新品发布会吧,目前华为已经确定了在发布会上发布哪些产品,之前华为就透露出了华为P50Pocket华为WatchD华为MateBook笔记本等,近日怎么才能买到好手机,行内人总结3条建议,网友真的很实用到了年底想要更换手机的用户越来越多,那么在选购手机的时候,我们该怎么样找到自己满意的手机?也就是说如何才能买到好手机?这个问题一直困扰着广大的网友,现在的手机品牌越来越多,机型也越iOS15。3升级后表现如何?8部iPhone实测,这几部不建议升级iOS的每次升级,果粉们都十分关心,因为iOS升级之后对iPhone的性能会有怎么样的影响暂时还是未知。目前iOS已经可以升级到iOS15。3,和iOS15。2。1相比,iPhonMIUI13新功能刚更新了MIUI13不到一个星期,下面来和大家分享一下。首先这次更新是跨版本的更新,更新时有可能出现有些不适配的情况。接下来说的是更新的主要内容。1。妙享中心(最大的更新方面)可拖苹果6s6sp77sp配置,功能,价格,性价比综合比较,那款更值得入手?首先总体看,iPhone6s6sPlus与iPhone77Plus相比最大的改进在于双摄像头,支持人像拍照。当然还有处理器提升支持防水等特性。一拍照iPhone77Plus的拍照能消息称FacebookInstagram正研发NFT制作交易功能DoNews1月22日消息(刘文轩)据英国金融时报援引知情人士消息,Meta旗下的Facebook与Instagram接下来可能会让用户展示NFT内容,甚至未来可能允许用户通过其平别再用错误的关机方式,伤害你心爱的电脑了大家好!我是小硕看到标题,你也许会说关机还会伤害电脑,不就是点开始电源关机就完事了,其实远没有你想象中的简单,里面有不少的学问。在Windows系统中的电源选项里关机睡眠重启休眠在
最低中签率0。03茅台新电商平台首日申购结果出炉高佳晨中国证券报中证网中证网讯(记者高佳晨)3月31日晚,茅台新电商平台i茅台首日申购结果出炉。据统计,贵州茅台酒(珍品)4599元瓶,投放量为3526瓶,申购人数为1402254感动中国2021年十大人物之一杨振宁1922年10月1日出生,香港中文大学博文讲座教授兼理论物理研究所所长,清华大学高等研究院名誉院长教授,纽约州立大学石溪分校荣休教授,中国科学院院士美国国家科学院外籍院士英国皇家学粉丝买到iPhone11Pro翻新机,群友一查整机报告就露馅儿了买二手iPhone的人非常多,因为二手iPhone性价比很高。但市面上真正原装的二手iPhone非常少,大多都是翻新过的,比如粉丝买的这台iPhone11Pro。虽然该机成色极品验华为5G回神了,麒麟985旗舰大量现货,8128G卖价2899关注华为的朋友可能都知道,现在要在华为中买到一款不错的5G手机,那是相当困难的,简单来说,在禁令之下,因为没有5G芯片供货,所以华为的很多5G手机系列都处于停滞状态。但因为华为涉及粉丝4000买黑解iPhone13,黑名单状态显示失窃是什么意思?黑解机就是有锁机,只是通过黑解绕过了网络锁而已!但很多商家喜欢叫黑解无锁机,其实这就是混淆视听!不要以为黑解机就是无锁机哦!网友买了一台红色黑解iPhone13,该机的成色不错,价4G改变生活,5G改变社会,那么6G改变什么?答案是6G将改变电信行业。其实这篇文章的本意是谈vRAN,是vRAN将改变电信行业,只不过蹭一下6G这个噱头,vRAN和6G没有必然关系,两者仅在发展时间上略有重叠,目前vRAN正脱胎换骨?央视公开透露,谷歌也没料到,华为会这么快开辟鸿蒙,谁为情种,都只为风月情浓。自古以来,鸿蒙一般都预示着混沌初开,预示着开天辟地。目前,在我国国产操作系统上面,也出现了这样一款名副其实的鸿蒙,没错,就是华为的鸿蒙系统。华为新经济风云录拥抱未来!新规之下,网络直播将走向何方?时下互联网直播蔚然成风,自2021年以来,作为网络直播最重要的形式之一电商直播头部主播纷纷陷入税收风波以来,市场就在猜测直播行业相关规范政策何时到来,直播行业也因此一度陷入政策风险实体店凋零,互联网裁员,未来何去何从?当下正在发生重大变化,对于普通人来说,有危险也有机会!大家有没有发现?当下很多街道上的实体店都是冷冷清清的,生意难做已经是共识。当然也有极个别有特色的店生意还是可以的,由于占比太小联发科冠军,高通第二,华为海思令人心痛从整体趋势看2022年国内智能手机出现了下滑趋势,整体市场表现非常低迷。在这样的情况之下上游供应链的日子也不会好过,毕竟大家都是一个生态链上的。特别是对于智能手机SoC厂家来讲,终要想赚钱,给互联网菜鸟七点建议互联网大发展日新月异,但还是引得无数人趋之若鹜,究其原因,就一个字利。自从各大平台的不断壮大,流量之争也呈现了炽热化,人群纷纷扰扰,有流量的地方成了必争之地。确实,互联网成就了太多