获得徽章 1
#青训营笔记创作活动#
1月20日 打卡day8
今日学习了MySQL中的各种各样的锁,较为深入的了解了mysql中不同的锁以及他们的相关的作用,联合以前的知识,对mysql有了更深的了解。
评论
#青训营笔记创作活动#
1月19日 打卡day7
由于昨天刚学完Go HTTP框架Hertz,于是今天看了这篇文章来补充一下自己的知识。通过该文章,我了解到了如何使用Hertz进行登陆认证和授权访问。同时也学习了Hertz的自动代码生成。
展开
评论
#青训营笔记创作活动#
1月18日 打卡day6
今天学习了MySQL索引初始篇。虽然在之前有系统的学习过MySQL索引,但是看完这篇仍然也有很大的收获。我了解了索引的基本机制,索引的不同分类以及使用。
评论
#青训营笔记创作活动#
1月17日 打卡day5
今日学习了为什么要对系统的数据库进行分库分表。知道了如何进行分库分表以及分库分表架构模式。看完这篇文章,让我对分库分表有了大致的了解。
评论
#青训营笔记创作活动#
1月16日 打卡day4
今天的学习虽然与具体的技术无关,但是对于一个开发者而言却是至关重要的。通过这篇文章,我知道了有关注释,目录,封装等一系列后端开发应当具备的习惯。
评论
#青训营笔记创作活动#
1月15日 打卡day3
该文章详细的讲解了在高并发的情况下开发者应当怎么应对。文章从前端到后端详细介绍了页面静态化,CDN,缓存,异步等知识,也考虑到了对一些动机不良的人做了限流。有很大收获!
评论
#青训营笔记创作活动#
1月14日 打卡day2
今日学习

为什么MySQL每张表不超过2000万条数据?

因为InnoDB中B+树的高度一般保持在三层以内会比较好。

为了简单起见,本文忽略了数据页的页格式与记录的行格式等占用的大小,只算个大概。

非叶子节点

这里假设B+树的根节点中的索引数目为N。则B+树第二层最多有N个结点,每个节点内部又有N个索引。则第三层有N^2个叶子节点。

由于B+树的每个数据页的默认大小为16KB,假设16KB全部用于存放用户记录(实际上数据页本身也会使用一些空间来存储一些页的基本信息,忽略不计)

而非叶子节点只记录索引。每一条索引记录当中都包含了当前索引的值 、 一个 6字节 的指针信息、一个 5 字节的行标头,用来指向下一层数据页的指针。

假设我们的主键id为 bigint 型,也就是8个字节,那索引页每页可以存约 16*1024 ÷ 19≈862 条索引数据。即N=862。

叶子节点

此时根据上述的表达,有N^2个叶子节点,即 862^2 = 743044个叶子节点。

每个叶子节点的数据页大小为16KB,假设每行用户数据占用了800字节。则每个节点约存放20条数据。

则所有叶子节点共存放743044*20=14,860,880条数据。1千400万

当然,由于实际情况中,每行的用户数据占用大小不同,因此2000万条数据并不是固定的。
展开
评论
#青训营笔记创作活动#
1月13日 打卡day1
由于本人也是在往golang进行转,因此看了这篇给想向golang转的同学的一些建议。
通过阅读这篇文章,了解到了如何高效的学习golang基础以及golang的进阶,同时学习了什么是DDD。有很大收获。
展开
评论
下一页
个人成就
文章被阅读 375
掘力值 61
收藏集
6
关注标签
47
加入于