最新要闻
- 全球观焦点:消夏之夜购物节吸引百余商家汇聚 到场市民超过10万人次
- 每日讯息!OPPO Reno10影像称绝:全系标配长焦镜头
- 南宁路边停车一天收费上百 有车主欠费6.4万_当前快播
- 同调拼色设计辨识度拉满!小米Civi 3真机外观首秀来了 世界热闻
- 大内存大存储真香!新版真我GT Neo5官宣:16GB+1TB明日开售 报资讯
- 热点聚焦:国产视频剪辑软件取代PR?联想YOGA官宣与剪映独家合作
- 世界实时:【苗乡侗寨人物志】“想喝正宗酸汤,去凯里就对了”
- 时讯:出口货值增长近40倍!我国这个地方制造的汽车加速出口中亚→
- 焦点!拓邦发布钠离子电池:-40℃放电容量近80% 秒杀锂电
- 玩家化身手工耿血洗《塞尔达》:不仅造出了坦克飞机还要修仙
- 独悬变扭力梁、气囊也少了 新款丰田卡罗拉上市:11.68万起
- 国内营收占10%以上 美光成美国存储芯片独苗:内存全球第三_每日快看
- 新车下饺子!比亚迪宋Pro DM-i冠军版内饰官图发布:新配色真高级
- 优选营养素密度高的食物,合理膳食提升免疫力
- 没有5G卖4G的华为手机比苹果还牛:消息称逆势上调全年出货量目标 全行业第一家|天天精选
- 1499元!小度青禾学习手机开启预售:一机顶6台 立省1万元
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
为什么MySQL单表不能超过2000万行?_环球动态
摘要:MySQL一张表最多能存多少数据?
本文分享自华为云社区《为什么MySQL单表不能超过2000万行?》,作者: GaussDB 数据库 。
最近看到一篇《我说MySQL每张表最好不要超过2000万数据,面试官让我回去等通知》的文章,非常有趣。
【资料图】
文中提到,他朋友在面试的过程中说,自己的工作就是把用户操作信息存到MySQL里,因为数据量超大(5000万条左右),需要每天定时生成3张表,然后将数据取模分别存到这三张表里。
下面是两人的对话:
面试后续暂且不论,不过,互联网江湖上的确流传着一个说法:单表数据量超过500万行时就要进行分表分库,已经超过2000万行时MySQL的性能就会急剧下降。
那么,MySQL一张表最多能存多少数据?
今天我们就从技术层面剖析一下,MySQL单表数据不能过大的根本原因是什么?
猜想一:是索引深度吗?
很多人认为:数据量超过500万行或2000万行时,引起B+tree的高度增加,延长了索引的搜索路径,进而导致了性能下降。事实果真如此吗?
我们先理一下关系,MySQL采用了索引组织表的形式组织数据,叶子节点存储数据,非叶子节点存储主键与页面号的映射关系。若用户的主键长度是8字节时,MySQL中页面偏移占4个字节,在非叶子节点的时候实际上是8+4=12个字节,12个字节表示一个页面的映射关系。
MySQL默认是16K的页面,抛开它的配置header,大概就是15K,因此,非叶子节点的索引页面可放15*1024/12=1280条数据,按照每行1K计算,每个叶子节点可以存15条数据。同理,三层就是15*1280*1280=24576000条数据。只有数据量达到24576000条时,深度才会增加为4,所以,索引深度没有那么容易增加,详细数据可参考下表:
搜索路径延长导致性能下降的说法,与当时的机械硬盘和内存条件不无关系。
之前机械硬盘的IOPS在100左右,而现在普遍使用的SSD的IOPS已经过万,之前的内存最大几十G,现在服务器内存最大可达到TB级。
因此,即使深度增加,以目前的硬件资源,IO也不会成为限制MySQL单表数据量的根本性因素。
那么,限制MySQL单表不能过大的根本性因素是什么?
猜想二:是SMO无法并发吗?
我们可以尝试从MySQL所采用的存储引擎InnoDB本身来探究一下。
大家知道InnoDB引擎使用的是索引组织表,它是通过索引来组织数据的,而它采用B+tree作为索引的数据结构。
B+Tree操作非原子,所以当一个线程做结构调整(SMO,Struction-Modification-Operation)时一般会涉及多个节点的改动。
SMO动作过程中,此时若有另一个线程进来可能会访问到错误的B+Tree结构,InnoDB为了解决这个问题采用了乐观锁和悲观锁的并发控制协议。
InnoDB对于叶子节点的修改操作如下:
方式一,先采用乐观锁的方式尝试进行修改
对根节点加S锁(shared lock,叫共享锁,也称读锁),依次对非叶子节点加S锁。
如果叶子节点的修改不会引起B+Tree结构变动,如分裂、合并等操作,那么只需要对叶子节点进行加X锁(exclusive lock,叫排他锁,也称为写锁)即可完成修改。如下图中所示 :
方式二,采用悲观锁的方式
如果对叶子结点的修改会触发SMO,那么会采用悲观锁的方式。
采用悲观锁,需要重新遍历B+Tree,对根节点加全局SX锁(SX锁是行锁),然后从根节点到叶子节点可能修改的节点加X锁。
在整个SMO过程中,根节点始终持有SX锁(SX锁表示有意向修改这个保护的范围,SX锁与SX锁、X锁冲突,与S锁不冲突),此时其他的SMO则需要等待。
因此,InnoDB对于简单的主键查询比较快,因为数据都存储在叶子节点中,但对于数据量大且改操作比较多的TP型业务,并发会有很严重的瓶颈问题。
在对叶子节点的修改操作中,InnoDB可以实现较好的1与1、1与2的并发,但是无法解决2的并发。因为在方式2中,根节点始终持有SX锁,必须串行执行,等待上一个SMO操作完成。这样在具有大量的SMO操作时,InnoDB的B+Tree实现就会出现很严重的性能瓶颈。
解决方案
目前业界有一个更好的方案B-Link Tree,与B+Tree相比,B-Link Tree优化了B+Tree结构调整时的锁粒度,只需要逐层加锁,无需对root节点加全局锁。因此,可以做到在SMO过程中写操作的并发执行,保持高并发下性能的稳定。
B-Link Tree主要改进点有2个:
1.中间节点增加link指针,指向右兄弟节点;
2.每个节点内增加字段high key,存储该节点中最大的key值。
新增的link指针是为了解决SMO过程中并发写的问题,在SMO过程中,B-Link Tree对修改节点逐层加锁,修改完一层即可放锁,然后去加上一层节点的锁继续修改。这样在InnoDB引擎中被SMO阻塞的写操作可以有机会在SMO操作过程中并发进行。
如下图所示,在节点2分裂为节点2和4的过程中,只需要在最后一步将父节点1指向新节点4时,对父节点1加锁,其他操作均无需对父节点加锁,更无需对root节点加锁,因此,大大提升了SMO过程中写操作的并发度。
由此可见,与B+Tree全局加锁对比,B-Link Tree在高并发操作下的性能是显著优于B+Tree的。GaussDB当前采用的就是B-Link Tree索引数据结构。
InnoDB的索引组织表更容易触发SMO
索引组织表的叶子节点,存储主键以及应对行的数据,InnoDB默认页面为16K,若每行数据的大小为1000字节,每个叶子节点仅能存储16行数据。
在索引组织表中,当叶子节点的扇出值过低时,SMO的触发将更加频繁,进而放大了SMO无法并发写的缺陷。
目前业界有一个堆组织表的数据组织方案,也是华为云数据库GaussDB采用的方案。它的叶子节点存储索引键以及对应的行指针(所在的页面编号及页内偏移),堆组织表叶子节点可以存更多的数据,分析可得在同样的数据量与业务并发量下,堆组织表会比索引组织表发生SMO概率低许多。
性能对比
在8U32G的两台服务器分别搭建了MySQL(B+Tree和索引组织表)与GaussDB(B-Link Tree和堆组织表)的环境,进行了如下性能验证:
实验场景:在基础表的场景上,测试增量随机插入性能。
1.基础表总大小10G,包含主键随机分布的1000w行数据,每行数据1k;
2.插入主键随机分布的1000w行数据,每行数据大小1k,测试并发插入性能。
结论:随着并发数的上升,GaussDB能稳步提升系统的TPS,而MySQL并发数的提高并不能带来TPS的显著提升。
综上所述,MySQL无法支持大数据量下并发修改的根本原因,是由于其索引并发控制协议的缺陷造成的,而MySQL选择索引组织表,又放大了这一缺陷。所以,开源MySQL数据库更适用于主键查询为主的简单业务场景,如互联网类应用,对于复杂的商业场景限制比较明显。
相比之下 ,采用B-Link Tree和堆组织表的GaussDB数据库在性能和场景应用方面更胜一筹。
点击关注,第一时间了解华为云新鲜技术~
关键词:
为什么MySQL单表不能超过2000万行?_环球动态
05-译码器
全球观焦点:消夏之夜购物节吸引百余商家汇聚 到场市民超过10万人次
每日讯息!OPPO Reno10影像称绝:全系标配长焦镜头
南宁路边停车一天收费上百 有车主欠费6.4万_当前快播
同调拼色设计辨识度拉满!小米Civi 3真机外观首秀来了 世界热闻
大内存大存储真香!新版真我GT Neo5官宣:16GB+1TB明日开售 报资讯
热点聚焦:国产视频剪辑软件取代PR?联想YOGA官宣与剪映独家合作
世界实时:【苗乡侗寨人物志】“想喝正宗酸汤,去凯里就对了”
Android Studio源码导入与调试_环球新资讯
天天快讯:From Java To Kotlin:空安全、扩展、函数、Lambda很详细,这次终于懂了
GPS北斗校时服务器(时间同步装置)助力桥梁检测系统建设
微动态丨HTTP1.0、HTTP1.1、HTTP2.0 协议的区别
时讯:出口货值增长近40倍!我国这个地方制造的汽车加速出口中亚→
焦点!拓邦发布钠离子电池:-40℃放电容量近80% 秒杀锂电
玩家化身手工耿血洗《塞尔达》:不仅造出了坦克飞机还要修仙
独悬变扭力梁、气囊也少了 新款丰田卡罗拉上市:11.68万起
国内营收占10%以上 美光成美国存储芯片独苗:内存全球第三_每日快看
新车下饺子!比亚迪宋Pro DM-i冠军版内饰官图发布:新配色真高级
优选营养素密度高的食物,合理膳食提升免疫力
c语言程序设计知识点总结03-精彩看点
没有5G卖4G的华为手机比苹果还牛:消息称逆势上调全年出货量目标 全行业第一家|天天精选
1499元!小度青禾学习手机开启预售:一机顶6台 立省1万元
热门看点:400年前的画里有男孩穿耐克鞋 网友称穿越:还有百年前画作出现iPhone
全红婵的水花让物理学不存在了 网友点赞:物理学对她不适用|全球观热点
一个月没找到 美国30吨爆炸性化学品铁路运输时丢失:科普硝酸铵理化性质-世界热点
快报:中国抗体-B(03681.HK):SM17新药研究申请获国家药监局药品审评中心受理
天天精选!交易商协会发布4月债务融资工具业务量统计和主承分类统计
印为何收回2000卢比纸币?专家:缓解银行流动性危机和加息压力
BLG夺《英雄联盟》MSI亚军 B站:BLG粉丝赠送一年大会员 全球微动态
比亚迪汉DM-i冠军版/DM-p战神版爆火!3天订单破1.3万辆:女车主高达37.2%
盖茨再爆与20多岁俄女子发生婚外情 遭美国淫魔富豪威胁 全球速看料
学系统集成项目管理工程师(中项)系列24a_信息系统集成专业技术知识(上)-当前播报
世界快播:雅顿橘灿精华使用方法 雅顿橘灿精华用在哪个步骤
JDG战胜BLG夺《英雄联盟》MSI冠军!官方发福利:皮肤免费送 全球头条
《王国之泪》开发之初没有剧情:优先考虑游戏体验-环球热消息
全国首个DNA存储领域预训练大模型 ChatDNA发布 今日快看
最新消息:[工具/资源] Web应用开发的基础工具与资源
全球观察:Pytest - pytest 命令(2) - 命令参数及含义
计算机组成原理:控制器实验|全球今亮点
焦点播报:记录一次系统恢复的经历
linux 性能自我学习 ———— 理解平均负载 [一] 环球看热讯
焦点速讯:我们看腻了的电视剧 却在东南亚成了顶流
清华女生获选美冠军 回应质疑:打破对理工科女生的偏见 全球热文
音量调节器怎么在桌面显示_音量调节器不见
情定三生40集大结局_你都学会了吗_全球讯息
Netflix 网站架构学习
wps邮件合并功能无法打开数据源_wps邮件合并
三大运营商最新财报出炉:一天净赚4.2亿|每日消息
国内AI大模型 VS chatgpt (20)-- H265/H264有何不同,h265有什么优势?
Revit二次开发实战04(元素搜集过滤器FilteredElementCollector)
雅顿和珂润哪个好 珂润和雅漾哪个好
世界时讯:官方:美光在华销售产品 未通过网络安全审查!关键领域停止采购
DDR5内存之疯狂:频率突破11.2GHz!延迟惨不忍睹-全球观点
每日快看:完全自主知识产权 国产全新3D dToF芯片发布
伊拉克“抱脸虫”追着美国大兵跑!比你想象的还可怕|每日视讯
《GTA6》男主现身:和游戏画面一模一样|速读
期权即将到期 黄金重回区间还是下破?_环球快播报
世界报道:C++ Primer 5th 阅读笔记:字符串,vector 和数组
焦点热文:杂项·入门
AMD RX 7600公版卡曝光:双风扇也迷你可爱!国内会卖吗?|今日热讯
全国第一次!两条高铁的两座特大桥同时转体|焦点关注
大众CC开着开着天窗没了 车主:吓得腿发抖-世界聚焦
万科150亿元定增申请获深交所受理 当前快讯
独特多媒体旋钮设计瞩目:Keychron即将推出Q3 Pro SE机械键盘 观天下
环球时讯:锐龙7 7800X3D开盖“果奔”:60秒后 惨烈一幕出现
妇女能顶半边天下一句_我歌月徘徊下一句 全球信息
即时看!首批名额仅600名:魅族17系列迎来Flyme10内测招募
你的走路姿势 可能一直都错了!难看还伤腿
观速讯丨珍惜白菜价的电视吧 液晶电视面板价格继续大涨
武汉市三角路中学(关于武汉市三角路中学介绍)_世界今热点
499元新机竟敢对标苹果 看完真的有点香!
每日动态!凸六式扫把火了 商家剪坏扫把低价引流 男子将计就计下单
SpringBoot利用自定义注解实现多数据源
2尺2是多少毫米(2尺2多少厘米简介介绍)_今日热议
杭州现鸭屎香冰淇淋:味道揭秘!原来鸭屎香是一种乌龙茶
头条焦点:英国CMA或让步!微软收购动视暴雪新变动
天天关注:《英雄联盟》2023 MSI决赛JDG对战BLG!首发名单出炉:萍乡第一中单之争
青沼英二坦言自己老了:《王国之泪》将我逼到极限
银川市为500名女童免费接种HPV疫苗
IMU 积分进行航迹推算 天天快报
Win7经典“顽疾”:微软确认Win11硬盘可能被错误识别|全球今热点
“挖呀挖”黄老师开始转型:参与文旅宣传!曾否认辞职带货
焦点热文:小李子新片《花月杀手》M站91分 多家媒体给出满分
格致男排,夺冠! 每日速递
CesiumJS 源码杂谈 - 时间与时钟系统_前沿热点
《利益区间》冲击金棕榈大奖
4999元起!小牛MQiL电动两轮车开售:顶配能骑170km_世界动态
对话盛希泰:“专精特新”企业给二三四线城市带来发展机会_世界视点
快报:河南局地大暴雨!女子家中厨房窗户被暴风雨整个吹掉:庆幸无人受伤
每日关注!李想:汽车行业规模要求太苛刻 更容易出问题的不是成本而是销量
04-多路选择器
快报:我国南海发现两处古代沉船
我国深海考古重大进展!首次发现大型古代沉船:水下第一视角太壮观 环球热文
因为AI 让80%的职业原画师下岗
帮助Linux管理员简化任务并实现自动化的七大工具
自己办理深圳创业补贴难吗?创业开饭店有补贴吗深圳
爱驰汽车被曝经营困难:开通员工自费交社保通道 焦点热讯
中国取代日本成全球第一大汽车出口国 俄罗斯为最大买家|天天热门
React闭包陷阱