相关文章
17 MySQL是如何基于冷热数据分离的方案,来优化LRU算法的?
1、基于冷热数据分离的思想设计LRU链表真正的LRU链表,会被拆分为两个部分,一部分是热数据,一部分是冷数据,这个冷热数据的比例是由innodb_old_blocks_pct参数控制的,他默认是37,也就是说冷数据占比37%。 这个时候,...
18 基于冷热数据分离方案优化后的LRU链表,是如何解决之前的问题的?
1、对于预读以及全表扫描加载进来的一大堆缓存页 现在我们已经看完了LRU链表的冷热数据分离的方案,那么我们接着看这个冷热数据分离之后的LRU链表,他是如何解决之前遇到的一大堆问题的? 首先我们思考一下,在这样的一个LRU链表方案下,预读...
19 MySQL是如何将LRU链表的使用性能优化到极致的?
1、LRU链表的热数据区域是如何进行优化的?接着我们来看看LRU链表的热数据区域的一个性能优化的点,就是说,在热数据区域中,如果你访问了一个缓存页,是不是应该要把他立马移动到热数据区域的链表头部去? 我们看下面的图示。但是你要知道,热数据...
20 对于LRU链表中尾部的缓存页,是如何淘汰他们刷入磁盘的?
1、Buffer Pool的缓存页以及几个链表的使用回顾接着我们来讲讲,你的Buffer Pool在运行中被使用的时候,实际上会频繁的从磁盘上加载数据页到他的缓存页里去,然后free链表、flush链表、lru链表都会在使用的时候同时被使用...
26 一行数据中的多个NULL字段值在磁盘上怎么存储?
1、为什么一行数据里的NULL值不能直接存储? 之前我们已经给大家讲了在数据库里一行数据中如果有VARCHAR(10)之类的变长字段,那么他的存储和读取会有什么问题,以及为了解决这个问题,为什么要给磁盘上存储的每一行数据都加入变长字段长度...
35 生产经验:数据库服务器使用的RAID存储架构初步介绍
今天我们继续给大家讲解生产环境下的MySQL数据库的一些存储技术的原理,之前已经给大家解释了MySQL的磁盘随机读写和顺序读写的场景和原理,包括Linux操作系统的存储系统的原理,那么我们接着就要继续讲解Linux操作系统再底层的存储硬件层...