内存结构
Buffer Pool
缓存区 利用页面链表的方式+LRU 最近最少使用进行管理
Change Buffer
用于处理数据操作修改了索引结构的语句
在下次需要用到索引的操作执行时 就将该缓存的内容与原缓存合并
Adaptive Hash Index
用户优化缓冲区内存
Log Buffer(Redo Log Buffer)
保存写入磁盘的数据
从一个Update 语句入手
- 解析语法 查询什么表 什么字段 生成查找树 选择最优的查找路径
- 判断操作记录是否在缓存池如果在 就直接操作 如果不在就将该记录放入缓存 并加锁
- 将之前修改之间的记录写入回滚字段 可以理解为放入回收站 要是搞错了 还可以拿出来那种
- 更新缓存中的数据 记录日志
- 提交事务
- 后台IO 选择合适的时机 把脏页的数据刷新到各个数据文件中
参考内容
https://weread.qq.com/web/reader/4aa3250071a74c1d4aacadek8e232ec02198e296a067180