相关文章
15 当Buffer Pool中的缓存页不够的时候,如何基于LRU算法淘汰部分缓存?
1、如果Buffer Pool中的缓存页不够了怎么办? 之前我们已经给大家讲解了Buffer Pool中的缓存页的划分,包括free链表的使用,然后磁盘上的数据页是如何加载到缓存页里去的,包括对缓存页修改之后,flush链表是如何用来记载...
24 我们写入数据库的一行数据,在磁盘上是怎么存储的?
1、承上启下:在Buffer Pool之后,为什么要学习MySQL物理数据模型? 之前的一些文章我们已经深入的给大家分析了当你执行crud操作的时候,MySQL是如何把磁盘上的数据页加载到内存中的Buffer Pool的缓存页里去的,以及...
27 磁盘文件中, 40个bit位的数据头以及真实数据是如何存储的?
之前我们已经给大家讲到了在磁盘上存储数据的时候,每一行数据都会有变长字段长度列表,逆序存放这行数据里的变长字段的长度,然后会有NULL值列表,对于允许为NULL的字段都会有一个bit位标识那个字段是否为NULL,也是逆序排列的。 今天我们...
01 天天写CRUD,你知道你的系统是如何跟MySQL打交道的吗?
1、Java工程师眼中的数据库是什么东西? 从今天开始,我们将要开始一个MySQL的专栏,一起来研究MySQL数据库的底层原理和各种实践案例,以及互联网公司的技术方案。 现在我们先来看看,在一个Java工程师眼中的数据库是什么东西?...
03 用一次数据更新流程,初步了解InnoDB存储引擎的架构设计
1、更新语句在MySQL中是如何执行的? 之前我们已经分析了MySQL架构上的整体设计原理,现在对一条SQL语句从我们的系统层面发送到MySQL中,然后一步一步执行这条SQL的流程,都有了一个整体的了解。 我们已经知道了,MySQL最常...
04 借着更新语句在InnoDB存储引擎中的执行流程,聊聊binlog是什么?
1、上一讲思考题解答:redo日志刷盘策略的选择建议 先给大家解释一下上一讲的思考题,我给大家的一个建议,其实对于redo日志的三种刷盘策略,我们通常建议是设置为1 也就是说,提交事务的时候,redo日志必须是刷入磁盘文件里的。 这样...