面试提问mysql一张表到底能存多少数据

面试提问mysql一张表到底能存多少数据,第1张

面试提问mysql一张表到底能存多少数据 目录
  • 前言
  • 1、知识准备
    • 1.1、数据页
    • 1.2、索引结构(innodb)
  • 2、具体计算方法
    • 2.1、根节点计算
    • 2.2、其余层节点计算
  • 3、总结

    前言

    程序员平时和mysql打交道一定不少,可以说每天都有接触到,但是mysql一张表到底能存多少数据呢?计算根据是什么呢?接下来咱们逐一探讨

    1、知识准备

    1.1、数据页

    在操作系统中,我们知道为了跟磁盘交互,内存也是分页的,一页大小4KB。同样的在MySQL中为了提高吞吐率,数据也是分页的,不过MySQL的数据页大小是16KB。(确切的说是InnoDB数据页大小16KB)。详细学习可以参考官网 我们可以用如下命令查询到。

    mysql> SHOW GLOBAL STATUS LIKE 'innodb_page_size';
    +------------------+-------+
    | Variable_name    | Value |
    +------------------+-------+
    | Innodb_page_size | 16384 |
    +------------------+-------+
    1 row in set (0.00 sec)

    今天咱们数据页的具体结构指针等不深究,知道它默认是16kb就行了,也就是说一个节点的数据大小是16kb

    1.2、索引结构(innodb)

    mysql的索引结构咱们应该都知道,是如下的b+树结构

    通常b+树非叶子节点不存储数据,只有叶子节点(最下面一层)才存储数据,那么咱们说回节点,一个节点指的是(对于上图而言)

    每个红框选中的部分称为一个节点,而不是说某个元素。了解了节点的概念和每个节点的大小为16kb之后,咱们计算mysql能存储多少数据就容易很多了

    2、具体计算方法

    2.1、根节点计算

    首先咱们只看根节点

    比如我们设置的数据类型是bigint,大小为8b

    在数据本身如今还有一小块空间,用来存储下一层索引数据页的地址,大小为6kb

    所以我们是可以计算出来一个数据为(8b+6b=14b)的空间(以bigint为例) 我们刚刚说到一个数据页的大小是16kb,也就是(16*1024)b,那么根节点是可以存储(16*1024/(8+6))个数据的,结果大概是1170个数据 如果跟节点的计算方法计算出来了,那么接下来的就容易了。

    2.2、其余层节点计算

    第二层其实比较容易,因为每个节点数据结构和跟节点一样,而且在跟节点每个元素都会延伸出来一个节点,所以第二层的数据量是1170*1170=1368900,问题在于第三层,因为innodb的叶子节点,是直接包含整条mysql数据的,如果字段非常多的话数据所占空间是不小的,我们这里以1kb计算,所以在第三层,每个节点为16kb,那么每个节点是可以放16个数据的,所以最终mysql可以存储的总数据为

    1170 * 1170 * 16 = 21902400 (千万级条)

    其实计算结果与我们平时的工作经验也是相符的,一般mysql一张表的数据超过了千万也是得进行分表操作了。

    3、总结

    最后用一张图片总结一下今天讨论的内容,希望您能喜欢

    以上就是面试提问mysql一张表到底能存多少数据的详细内容,更多关于mysql一张表能存多少数据的资料请关注脚本之家其它相关文章!

    欢迎分享,转载请注明来源:内存溢出

    原文地址:https://outofmemory.cn/sjk/2997246.html

    (0)
    打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
    上一篇 2022-09-26

    随机推荐

    • 潮汕话心焦是什么意思

      心焦,就是"心里焦急,非常着急"的意思。与"心急,着急"比起来,显然"心焦"的程度要严重一些。来源:三国魏.阮籍〈咏怀诗〉八二首之三三:「终身履薄冰,谁知我心焦?」《三国演义.第六

      2022-12-06
      000
    • 男生口中的拼刺刀是什么意思内涵

      拼刺刀,网络流行语,通常用来调侃两个男性之间的恩爱游戏性行为,也可用作男性之间某种争斗的吐槽语...重点是男人和男人之间的存在的关系和纠葛才能被称作为“拼刺刀。”这一情节在电视剧中并不少见,如今成为网

      2022-12-06
      000
    • 立刻有、立刻有拼音是什么意思

      立刻有的中文拼音 li ke you ,在英语里是like you 喜欢你的意思。土味表白情话。《唐人街探案2》中出现了“立刻有”的对白。“立刻有”“什么?”“拼音”Li ke youLike you

      2022-12-06
      100
    • 网络语摇摇七喜是什么意思

      摇摇七喜,用易烊千玺的拼音首字母yyqx另组的一个词语。因该词语气可爱而成为粉丝用来形容易烊千玺的代称。七喜:一种饮料(英文原名7-Up)是Dr PepperSeven Up公司的柠檬汽水品牌,从1

      2022-12-06
      000
    • 梅兰芳有几任妻子

      梅兰芳总共有两个妻子,她们分别是王明华和福芝芳。王明华是梅兰芳的结发妻子,嫁给梅兰芳后为他生育了一儿一女,可是谁曾想后来这两个孩子相继夭折,为续梅家香火,梅兰芳又娶了福芝芳,福芝芳是梅兰芳的第二房太太

      2022-12-06
      000
    • 虞世南简介

      虞世南,字伯施,是南北朝至隋唐时著名的书法家、文学家、诗人、政治家。虞世南生性沉静寡欲,喜欢学习,他所编的《北堂书钞》被誉为唐代四大类书之一,也是中国现存最早的类书之一。公元605年,虞世南就被授为秘

    • 玉鼎真人简介—为阐教“十二金仙”之一

      玉鼎真人,小说《封神演义》中玉鼎真人为玉虚宫元始天尊门下,姜子牙的同门师兄,弟子是杨戬。为阐教十二金仙之一。道场在玉泉山金霞洞。镇洞之宝是斩仙剑。他曾协助老子、元始天尊等仙会破诛仙阵,又在姜子牙被困瘟

    • 1750年是什么朝代

      1750年是清朝乾隆十五年,中国农历庚午年,生肖马年。乾隆时期社会人口暴增,对于一个以农业为核心经济模式的中国来说,人口已经相对过剩。在乾隆后期,以英国为首的欧洲国家已经无法忍受在茶叶,丝绸,瓷器贸易

      2022-12-06
      000
    • 十二星座哪个星座吵架最狠

      哪个星座吵架最狠:1、天秤座:天秤口才很厉害,不要和他们吵架,特别毒舌。2、双子座:双子的头脑跟口才特别厉害,也是有办法让你对他们心服口服。3、射手座:射手人缘特别好,与人为善,但发起脾气来他们可是最

      2022-12-06
      000

    发表评论

    登录后才能评论

    评论列表(0条)

      保存