先说 3 件事吧!
时间过的很快,一眨眼一年时间就过去了。过去一年里,我也和群里的不少朋友一起成长,互相学习到不少东西!下面总结一些,我们经常在群里讨论的一些关于 MySQL 的知识点。
1、InnoDB 中每一页的大小默认为 16kb,但是其也支持压缩页的功能,即将原本 16kb 的页压缩为 1kb、2kb、4kb 和 8kb。当需要从缓存池中申请 4kb 大小的页时,MySQL 的申请步骤如下:
2、当 LRU 列表中的页被修改之后,其数据就和磁盘上的数据产生了不一致,这种页被称为脏页,此时数据库会根据 checkpoint 机制将脏页刷新到磁盘中,脏页不仅存在于 LRU 列表中,也存在于 FLUSH 列表中,FLUSH 列表中的数据是专门用来管理将数据刷新到磁盘中的。
3、在下列三种情况下重做日志会将重做日志缓冲中的内容刷新到重做日志文件中:
4、为了避免数据丢失的问题,事务数据库都采用了 write ahead log 机制,也就是当事务提交时,存储引擎先将数据写入到重做日志中,然后再修改页中的数据,当数据库发生宕机时,可以通过重做日志来恢复数据。
5、为了协调 CPU 的处理速度与磁盘的读写速度之间的不匹配问题,MySQL 采用了缓冲池来解决这个问题,当发生数据读写时,其都是先将数据写入到缓冲池中,然后通过 checkpoint 技术将数据写入到磁盘中。
6、checkpoint 技术所解决的问题:
7、公众号里之前也总结了不少关于 MySQL 的面试题和知识点。如:
搜了一下,大概有 50 多篇原创 MySQL 文章,都可以在历史文章里搜索到。我依然推荐大家可以看看《高性能 MySQL》、丁奇大神的《MySQL实战45讲》。
另外我的小程序里也有一些 MySQL 相关的知识点,虽然很久没更新了!
由于今天临时有事,这篇文章更新的很晚,很抱歉!最后祝大家鼠年有——
“鼠”不尽的快乐!“鼠”不尽的收获!
“鼠”不尽的钞票!“鼠”不尽的笑容!
“鼠”不尽的幸福,“鼠”不尽的幸运!
“鼠”不尽的甜蜜,“鼠”不尽的活力!
2020,“鼠”你最胖!不是,“鼠”你最棒!