环球观焦点:MySQL单表数据量大于2000W行 性能会明显下降吗?
在互联网技术圈中有一个说法:「MySQL 单表数据量大于 2000 W行,性能会明显下降」。网传这个说法最早由百度传出,真假不得而知。但是却成为了行业内一个默认的标准。
(资料图片)
一、单表最大到底能存多少数据
先来看看下面这张图,了解一下mysql各个类型的大小
我们知道在MySQL是支持主键自增长的,不考虑其他因素的前提下,理论上只有主键没有用完,表中的数据就可以一直增加。从上图可以中可以分析出:
「主键类型为Int时」
主键32位,数据最大为2^32-1,大约可以存储21亿的数据,远远大约2KW。
「主键类型为bigint时」
主键64位,数据最大为2^64-1,存储的数据远远大于了常用的计量单位了,磁盘都达不到这个数量级。
「主键类型为tinyint时」
主键8位,数据最大为255,Id自增超过255就会报错
「由此可見:MySQL能够存储的数据在一定程度上受限与主键的类型。但是数据量的大小却跟2000W没啥影响,既然百度大佬推荐单表最大2000W行数据,那肯定不会是空口白话,一定定会有其他影响行数的因素」。
二、数据存储的结构
先不要着急,影响数据行数的因素肯定是有的,在此之前,先来看看数据在InnoDB中是怎么存储在磁盘的,又是怎么读取的。
2.1 数据存储的结构
在MySQL中默认的存储引擎是InnoDB,在之前的《存储引擎》中有说过,InnoDB为每个表都生成了两个文件:
.frm文件:表结构文件.ibd文件:数据文件(聚簇索引包含数据与索引),又叫「表空间」。
我们表中的的数据其实都是存储在磁盘的.ibd文件中,而每次读取整个.ibd文件无疑是非常慢的,所以在《InnoDB数据文件》中又提到,「InnoDB将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位,InnoDB中页的大小一般为 16KB」。如下
从上图中可以很清晰的看出,「一个.ibd文件文件是由多个数据页组成的,也就是说一个表的数据会被分散存储在多个数据页中」。当然数据页也不仅仅只是存储表中的数据,先来回顾一下页的组成
「页的组成」
如图所示,InnoDB数据页由以下七个部分组成,
从也得组成中我们知道,「数据页中还存储了除数据之外的东西,比如数据页的前后指针,页号,页目录等,因此虽然一个数据页一共16KB,但是能够用来存储数据的其实是不足16KB的」。
通过页的组成,我们可以大致分析在数据页中一下「查找数据的整体过程」:
记录被分散在不同的数据页中,InnoDB通过「页号【表空间的地址偏移量】来标识数据具体在哪一页中」。不通的数据页之间使用「前后指针」进行关联,避免检索消耗,当找到数据在那个数据页之后,InnoDB为避免遍历检索而提供了一个「页目录」,页目录通过「二分查找」将查找效率「从O(n) 变成O(lgn)」,从而快速定位数据的位置。
2.2 索引的结构
既然在.ibd文件中只要知道了页号,就可以快速定位数据行的位置,从而读取到相应的数据。那么问题来了,我咋知道我要找的数据在那个数据页里,咋知道页号是啥?
万事都有解决的方式,要知道页号其实也简单,无非就两种方式:
「全表扫描」:简单粗暴,没那么多花花肠子,干就完事,但是「数据量大了,性能就会下降,非长久之计」。「通过索引找到数据页」:重点了解一下这个
在《索引基本原理》中解释了InnoDB索引是基于B+tree实现的,InnoDB在构建B+tree结构时,一般会找出每个数据页中id最小(或者说索引最小, InnoDB主键即聚簇索引)的记录与其对应的页号,「将id与页号组成一个新的记录,存储在一个新生成的数据页中,其大小也为16K,为与存储数据的数据页区分,引入了数据页之间的上下层级关系」,也就是「页层级(page level)」。因此我们知道在B+tree中分为两部分:
「叶子节点」:真正存放表中的数据的数据页,page level = 0「非叶子节点」:存放索引以及索引对应数据所在的页号的数据页
根据这张B+tree的图,我们知道数据页之间是有地址指向的,如果要找一条数据,最多只需要经历三次「磁盘IO」就可以将数据页都加载到内存中,从而找到数据,完成查询。
三、B+Tree能存储多少数据
要知道一个B+Tree能存储多少数据其实也不难,B+Tree中的叶子节点存放的是数据,而一个数据页只有16K,我们「假设:数据页中页目录,页头,页尾加起来总共占用1KB,剩余15KB全部用了存放数据」。
如上图:
将B+tree的高度定义为N非叶子节点的数据页存储数量为X,也就是有X个数据页的页号叶子节点的数据页存储数据为Y
根据以上定义,B+tree存储的数据总量:「M ={X ^ (N-1)} * Y」
前文中我们说到主键类型会影响行数,那么此时我们「假设主键类型为bigint类型,占8个字节,而在InnoDB源码中页号(FIL_PAGE_OFFSET)被设置为4字节」。则此时非叶子节点能存储的数据量为
「X = 15 * 1024 / (8 +4) = 1280」
「基于此:在来做一个假设,假设叶子节点中存储的数据,每条的大小都为1KB,即每个数据页存储15条数据。」
「Y = 15」
现在来看看B+tree的数据量
「两层B+tree的数据量(N=2)」
「M = {X ^ (N-1)} * Y = {1280 ^ (2-1)} * 15 = 19200 条」
「三层B+tree的数据量(N=3)」
「M = {X ^ (N-1)} * Y = {1280 ^ (3-1)} * 15 = 24579000条」
「四层B+tree的数据量(N=4)」
「M = {X ^ (N-1)} * Y = {1280 ^ (4-1)} * 15 = 计算器都算不清楚了」
「从这里的24579000条,我们就知道为啥单表不推荐超过2000W了,三层B+tree的时候最多只有三次磁盘IO,四层的时候数据量太大,磁盘可能都造不住了」。
四、啥时候能超过2000W的数据
不知道大家有没有注意到一点,在上面计算中,我们都是做了很多假设,其中就有一条:「假设叶子节点中每条数据占用1KB,以此得出一个数据页的数据量Y=15」。
在实际中,要是我一行的数据非常小,仅仅只占用了100KB(比如一个中间表,记录的仅仅是ID),此时
「叶子节点数据页的数据量」
「Y = 15 * 1024 / 100 = 153」
「三层B+tree的数据量」
「M = {X ^ (N-1)} * Y = {1280 ^ (3-1)} * 153 = 250675200条」
「同样是三层B+tree,此时却可以存储2.5亿条数据,增长十倍,但是查找同样只需要三次磁盘IO,并不会对性能有太大影响」。
这里说的「是【叶子节点】数据页的数据行大小」影响了最终存储的数据总量,「实际上【非叶子节点】的数据页存储数量X的大小变化的时候」,也会影响数据总量,但是这种影响一般会在B-tree中体现。
我们知道B-tree跟B+tree最大的区别就是「B-tree的非叶子节点中存储的是真实的数据行,而数据页的大小是16KB固定的,因此相同数据下,B-tree需要更多数据页才能存储数据,数据页增多势必会造成非叶子节点的层级变高,造成更多的磁盘IO,导致性能下降」。这也是InnoDB使用B+tree作为索引结构,而不用B-tree的原因。
「总结」
这里总结一下前文中提的问题「其他影响行数的因素」?现在就很清晰了,除了主键大小和磁盘限制,最重要的就是索引的结构,即B+tree。
标签:
相关推荐:
精彩放送:
- []硬屏和软屏有什么区别?如何识别?
- []全球看点:永恒之塔无法连接到认证服务器怎么办?解决方法步骤
- []快讯:财面儿丨建发股份:房地产业务2022年归母净利润22.67亿元 同比下降21.23%
- []世界热点评!斗鱼看不到弹幕怎么办?斗鱼无法看到弹幕的解决方法
- []【天天报资讯】如何解决lIE浏览器的崩溃?lWin浏览器产生崩溃的几类原因
- []每日快报!如何发布一个BT种子文件?2个步骤搞定
- []当前最新:天堂2服务端服务器名字修改?制作天堂2鼠标指针和蓝色长方形条的教程
- []富士通电磁炉电路图 电磁炉电路板维修教程
- []世界关注:空间克隆怎么用?网页版如何用?
- []当前关注:文件压缩与解压缩工具——ZIP4J项目包
- []【数据分析】如何快速实现API和数据接口的调用?
- []每日时讯!delphi多线程详解及其详解例子 Delphi多线程同步处理方案
- []电子机票怎么使用?电子机票使用流程
- []李锋张雪的小说书名叫什么?李锋张雪的小说名字介绍
- []快消息!中学生营养午餐食谱大全 收藏起来
- []世界热点评!《棋魂》佐的消失算不算一个败笔?这其实是个神来之笔
- []推动住宅类不动产率先实现“带押过户”
- []恒盛地产2022年度录得公司拥有人应占亏损2.97亿元 同比下降94.2%
- []微头条丨克勤于邦克俭于家的意思是什么?关于克勤于邦克俭于家的意思解释
- []关晓彤换头像引战触发新热搜 这次的事情是谁有错在先?
- []焦点热门:财面儿丨珠江股份2022年归属股东净亏损18.64亿元
- []天天观察:办外出经营许可证需要什么资料?怎么办理?
- []【新视野】财面儿丨远洋集团2022年营业额为人民币461.27亿元
- []前沿热点:神仙道太初有什么用?魔鼎在哪里?
- []速看:丢的部首是什么?丢的笔顺是什么?
- []当前头条:"股王"业绩出炉!暴赚627亿,将分红325亿!神秘百亿私募疯狂加仓
- []【全球聚看点】龙洲股份:目前,公司所属龙岩市交通职业技术学是龙岩市交通行业从业人员培训、考试基地
- []环球快报:《金鹰独播剧场》璀璨人生演员演员表介绍
- []【天天报资讯】世界最长的三条河流是哪三个?世界最长的河流TOP3
- []全球球精选!上海大众汽车在中国有几家工厂?分别生产什么车型?
- []女漫游二觉主动技能叫什么?和男漫游一样吗?
- []焦点热文:泰国到底是一个怎样的国家?为什么中国人那么多去泰国旅游的?
- []全球实时:工业用电2022最新规定:每千瓦时的电力消费单价也不同
- []焦点快报!当年传奇升级有多难?一比一复刻 升级速度刚刚好
- []天天播报:成都九中光华校区现在怎么样了?成都九中光华校区介绍
- []《笑傲江湖》三大美女:许晴任盈盈 苗乙乙的岳灵珊 仪琳的仪峰
- []露营的钱,不好赚了
- []世界资讯:今天最新消息 新疆葫芦岛成摄影爱好者“天堂”
- []天天最新:【爬取红岭创投】存储在mysql数据库中的无头模式
- []华为光纤猫指示灯有什么用?华为光纤猫指示灯功能介绍
- []多普达手机如何鉴别?多普达手机行货验证介绍
- []每日快讯!2019年运城高考状元名单公布:运城文理科状元是谁?
- []【环球报资讯】冬季家用洗碗机怎么样?家用洗碗机使用特点
- []笔记本电脑电池如何校准电量?教你一招
- []启发式搜索算法解决八数码问题(C语言)珍藏版
- []当前短讯!web服务器是什么?web服务器的概念与类型
- []联想thinkpadx200怎样装系统?五步装电脑
- []世界快播:IE浏览器未响应怎么办?IE浏览器未响应问题的解决办法
- []天天视讯!【scrapy框架】scrapy框架糗事百科爬虫案例分享
- []今日看点:bot短期密集访问形成的流量高峰有哪些?如何解决?
- []天天精选!戴尔笔记本电脑多少钱?戴尔笔记本电脑价格大全
- []世界即时看!无线数字电视怎么搜台?无线数字电视搜台步骤介绍
- []三星S5660手机配置怎么样?三星S5660如何设置时间和日期?
- []焦点热议:IUNI U3的手机系统是什么?IUNI U3能升级安卓4.3吗?
- []mysql-h主机名-p密码库名C-lamp61数据库
- []焦点日报:飞信登录PC客户端时无法正常登录怎么办?无法正常登录的原因有哪些?
- []新消息丨windows10运行ssd训练自己的数据集 pytorch1.8.0+cuda111的数据集
- []全球快资讯丨golang-java-serializer序列化算法解析
- []天天关注:C语言算法---扑克牌排序问题描述
- []天天信息:徕卡镜头有哪些型号?徕卡镜头大全以及报价镜头
- []全球讯息:上坤地产:杨占东辞任执行董事 继续担任执行总裁职务
- []世界热门:专业数字录音机价格是多少钱?买哪种品牌?
- []速读:seo入门知识有哪些?seo入门需掌握的基础知识
- []环球快消息!什么是视频会议系统?视频会议的发展及标准有哪些?
- []环球速递!紫外光激发使光诱导进入二苯并--萘酚的花菁形式
- []世界快资讯丨CCFL是什么?CCFL背光屏有哪些优点?
- []世界讯息:qq字体怎么设置?qq聊天字体设置教程
- []每日速读!显示器色域检测软件怎么下载?显示器色域检测图拉丁版
- []焦点快播:【python】Python中最常用的数据类型
- []每日视讯:去年地产板块收入降超四成 金隅集团今年要“下更大力度去库存”
- []TD早报 | 多方回应搭飞机坐高铁是否需要佩戴口罩;国航:暂未接到下调机票燃油费相关通知
- []世界通讯!3月31日财经早餐:美元走软和美债收益率下降推动黄金需求,关注美国通胀数据
- []观热点:二六三(002467)2022年年报财务简析:增收不增利
- []弘阳地产:2022年实现收入200.13亿元
- []视焦点讯!方圆生活服务:2022年总收入约为人民币5.11亿元
- []太平洋保险的税优识别码,在保单右上方查找
- []天天报道:领悦服务集团:2022年收益为人民币5.77亿元
- []保险公司排名一览表,十大公司排名
- []天天新消息丨养老保险种类
- []【天天聚看点】燕塘乳业2022年营收18.8亿 新零售业务逆势增长58%
- []统筹公司倒闭车险不能理赔怎么办
- []天天动态:保利发展:2022年实现营业总收入2811.08亿元
- []远洋集团:2022年营业额为人民币461.27亿元
- []疫情隔离保险在哪买,有以下三种方法
- []环球热推荐:“快递一哥”顺丰控股去年净利增长45%,前十大股东中4位去年四季度在减持
- []环球今亮点!村民不认可孙国友被称治沙英雄是什么情况
- []全球微头条丨东胜智慧城市服务2022年收入2.27亿港元 同比增加约77%
- []天天快资讯丨新华联所持长沙银行1.39亿股司法拍卖已完成过户手续
- []金茂投资:2022年实现营业收入771.64亿元
- []移卡创始人称数字生活正在加速由2.0进入3.0时代
- []热点评!青岛双星: 您的提问涉及到公司与合作方的商业秘密不便透露,敬请谅解
- []助力乡村振兴 长安汽车帮扶酉阳茶油可持续发展
- []世界讯息:郑州航空港区购房每平方米补贴300元 不限户籍、不限区域
- []建发股份:2022年归属股东净利润62.82亿元
- []首旅酒店:2022年归属股东净亏损5.82亿元
- []直真科技:3月29日公司高管彭琳明减持公司股份合计10000股
- []当前观察:合肥今年首批集中供地揽金约89亿元
- []亚朵集团上市首份成绩单:2022年净利润同比增85.6%
- []美联储更担心通胀年内至少加息一次,黄金腾飞
- []每日头条!交通银行副行长周万阜:财富管理业务具有很大的发展空间
- 环球观焦点:MySQL单表数据量大于2000W行 性能会明显下降吗?
- 天天微动态丨SIS与ESD、DCS、PLC,四者之间有什么关系?一文读懂SIS与DCS的关系
- 全球百事通!欧几里德几何的多目标优化自适应进化算法——AGE-II
- 《魔兽世界》所改编的网络游戏单机版 你玩过吗?
- 热点评!泛海微无线电动牙刷怎么样?无线充电电动牙刷技术介绍
- 每日资讯:固态存储设备要擦除哪些数据的SATAm指令?详情介绍
- 当前动态:天涯明月刀:1月第1批天涯合璧-数据互通(合服)即将启动
- 焦点信息:怎么设置excel2007冻结窗口?excel2007冻结窗口设置方法
- 全球要闻:如何成为一名优秀的产品经理?这四步很重要
- java中的TCP是什么?如何进行通讯?
- 协会属于什么性质企业
- 均胜电子:2022年净利3.94亿元 同比扭亏为盈
- 当前最新:发行股票的手续费计入什么科目
- 动态:配债100元一股要不要买
- 焦点热讯:归母利润是什么意思
- 绿景中国地产:2022年归属股东净亏损7.30亿元
- 华侨城:2022年归属股东净亏损109.05亿元
- 最资讯丨两部门:推动常态化开展“带押过户”服务,实现地域范围、金融机构和不动产类型全覆盖
- 焦点讯息:海尔智家2022年财报:业绩双增,利润增速超营收
- 精选!英诺特2022年净利1.51亿同比增长25.31% 董事长叶逢光薪酬12万
- 环球精选!财报金选丨万科企业2022年度营收5038.4亿元,同比增长11.3%
- 全球快看点丨万科晒年报:行业震荡中实现业绩企稳,经营服务业务收入突破500亿
- 【热闻】金辉控股:2022年净利润约为人民币20.8亿元
- 焦点消息!中科金财:公司业务和回款一直以来均具有季节性特征,四季度回款量较大
- 安徽天堂寨在哪里_安徽天堂寨
- 粤海置地:2022年归属股东净利润3.93亿港元
- 指南针:公司业务目前不涉及ChatGPT相关应用,也暂未有从事AI基础研究计划
- 焦点讯息:精研科技:随着人工智能的发展,我们认为在以下几个方面会有更多、更高效的散热方案需求
- 富通信息:公司专业从事以光纤光缆制造为核心的光通信业务和以石英管材产品为辅助的石英制品业务
- 鲁商发展:2022年归属股东净利润0.45亿元
- 中国中铁:2022年房地产业务新签合同额751.9亿元
- 当前热议!中梁控股:2022年实现收入393.3亿元
- 【世界热闻】建发物业:2022年实现收入22.90亿元
- 近期经济运行亮点 | 甘肃省临夏州重锤敲响项目建设起势锣 凝心聚力力保有效投资开门红
- 鲁商服务:2022年实现收入6.27亿元
- 快资讯:陆家嘴:2022年实现营业收入117.62亿元
- 当前关注:中骏商管:2022年实现收入11.82亿元
- 水井坊:一季度业绩详见拟于4月份披露的公司一季度报告
- 环球关注:福星股份:2022年实现收入151.42亿元
- 沿海家园:出售珠海沿海股权事项补充材料将延迟至5月31日寄发
- 每日视讯:微盟发布2022年报:总营收18亿元 下半年亏损环比收窄0.8亿
- ST宏达:公司目前没有对外引进资产的计划,如有相关计划将按规则及时披露
- 环球最资讯丨溢价近90%战投荣盛石化,沙特阿美的野心不止于此
- 焦点速递!斩获储能双奖|华塑闪耀金砖储能大会
- 每日热点:跌无可跌,新能源板块暴力反弹一触即发!
- 两款手机表现有何不同?选HUAWEI magic5,还是oppofindx6?
- 环球热文:浙江海曙区2022年下半年非自然人家庭屋顶光伏项目补贴资金120198元
- 热推荐:比亚迪年报发布!2022年平均日营收11.62亿元!
- 环球速读:450MWh!宁德时代海外储能提速!
- “双碳目标”驱动箭牌家居绿色发展,以身作则引领行业绿色智造升级
- 实时焦点:在这里,孩子们感受家的温暖(一线调研)
- 合肥第二批供地挂牌11宗地块 总起始价98.44亿元
- 全球动态:中国铁建:2022年房地产开发业务实现收入622.53亿元
- 沙河股份:2022年实现收入7.63亿元
- 天天亮点!沙河股份2022年营业收入7.64亿元 房地产销售收入占98.45%
- 环球滚动:港发展局指交椅洲人工岛每年平开支只占政府每年总开支不到5%
- 楚江新材:公司产品暂未应用于固态氢能发电领域
- 怎么野,你说了算!奇瑞首款轻越野TJ-1开启全球征名
- 当前看点!九安医疗:持续血糖监测仪(CGMS)研发项目是公司募投项目之一,目前处于研发阶段,还需要一段时间
- 世界速读:通策医疗:公司不存在挪用资金情形,也不存在被ST的情形
- 支付宝出境游服务覆盖超过70个国家和地区 最新去韩国可用支付宝买火车票
- 前沿热点:21566人参观!2023中国国际清洁能源博览会暨中国氢能展圆满落幕
- 环球热资讯!身体抱恙是什么意思?抱恙出自哪里?
- putup加动词什么形式?putup是什么意思?
- 【全球聚看点】金地集团29.95亿元公司债将付息 利率分别为3.91%及4.30%
- 今日精选:北京故宫的特点有哪些?北京故宫资料介绍?
- 几套房要征收房产税?房产税怎么征收?
- 天天热资讯!厦门象屿完成发行23亿中期票据 利率1.69%
- 天天视点!“创”字当头“智”造为先 泸州老窖荣获2022年度四川省科学技术进步奖一等奖
- 当前时讯:斛珠的意思是什么?斛珠出自哪里?
- 12万买宝马? 营销噱头多于让利,难助力宝马电动化转型
- 实时:金管局:港家庭负债占GDP比率升至95.5%
- 盘它是什么意思?盘它一词的来源是什么?
- 全球看点:新地香港apm复活节生意额料增25%
- 每日讯息!吸附在鲨鱼身上的鱼是什么鱼?吸附在鲨鱼身上的鱼有什么特征?
- 世界今日讯!华润建筑有限公司是国企吗?华润建筑有限公司资料介绍?
- 当前滚动:公司社保怎么办理?公司社保的办理方式?
- 野风现代中心二期6.4亿元ABS项目更新至“已受理”
- 要闻:张辽和张颌是什么关系?张辽的简单介绍?
- 天天热推荐:3月30日豪迈科技涨停分析:风电,轮胎概念热股
- 全球即时:3月30日江波龙涨停分析:闪存,DRAM(内存),大基金概念概念热股
- 世界最资讯丨如何自然疏通浴室水槽
- 关上灯,点亮希望——宁波阪急响应“地球一小时”活动
- 【全球时快讯】求生之路2怎么局域网联机?局域网联机方法详解
- 全球微动态丨联想ThinkPad有哪些型号?联想ThinkPad各系列型号介绍
- 华为HiLink是什么?华为路由器hilink怎么用?
- QQ网络硬盘在哪?如何添加QQ界面?
- 世界今热点:躲过15次GC之后 进入老年代系统有哪些规则?
- iPhone5怎么升级ios7?8款苹果设备升级更新
- 克而瑞深度解读百瑞纪首本《住房租赁轻资产运营白皮书》
- 每日快播:张坤隐形重仓股曝光 再谈投资:每一次市场的大幅下跌 股票都是在“打折促销”
- 网吧服务器维护工具怎么下载?网吧维护管理助手使用方法
- 摄像机的焦距是什么意思?摄像机焦距对应距离介绍
- 世界即时看!【剑灵力士】新版本力士职业天赋加点推荐 备战不删档
- 每日头条!如何打开pdg文件?手把手教你打开PDG文件
- 每日热文:湖北长阳农商银行被罚60万元:因违规办理展期业务等
- 福建莆田市住房公积金政策调整 最低首付款比例20%
- 当前时讯:湖北襄阳出台购房新政 多孩家庭可获4万元补贴
- 微速讯:中建一局集团完成发行30亿票据 利率2.20%
- 西藏:适当提高住房公积金贷款最高额度
- 当前视讯!拉芳家化:公司将在2023年4月份公布2022年度的经营情况,还请届时关注
- 焦点要闻:众信旅游:目前,公司核心团队人员情况稳定,不存在专业人才流失的情况
- 全球热资讯!越秀资本完成发行8亿短期融资券 票面利率2.32%
- 来宾彩印手提无纺布袋定制,环保无纺布袋制作厂家
- 携程集团CEO孙洁:出入境游年底会反弹至80%水平
- 世界微动态丨日本角川出版公司奥运项目负责人承认向东京奥组委官员行贿
- 合肥2023首场土拍落幕 13宗地块成交总揽金约88.49亿元
- 全球热点评!东星医疗:公司若有股权激励计划,将根据相关规定及时履行信息披露义务
- 成都双流板桥轨道公司100%股权挂牌将满一年 目前尚未成功转让
- 天天快看:武汉城建开元森泊度假乐园项目签约 投资总额达22亿元