InnoDB存储引擎
作者:互联网
1:概览
InnoDB存储引擎主要包含后台线程和内存池,内存池的主要又是缓冲池。
- 后台线程主要进行内存和磁盘之间双向的数据刷新
- 内存主要缓存磁盘上的数据
此处应该有图
2:后台线程
2.1:Master thread
主要将缓冲池中的数据异步刷新到磁盘
2.2:IO thread
2.3:Purge thread
3:内存
内存主要包含缓冲池
此处该有一图
3.1:缓冲池
InnoDB存储引擎是基于磁盘的,并将其的记录按照页的方式进行管理。但是由于CPu读取速度和磁盘速度之间的差距,需要使用缓冲池来提升数据库的性能
读取与修改
在数据库中进行读取页的操作时,首先讲从磁盘读取到的页存放到缓冲池中,这个过程称为“FIX”在缓冲池中。下一次再读取相同的页时,首先判断该页是否在缓冲池中。若在缓冲池中,称该页在缓冲池中被命中,直接读取该页。否则,读取磁盘上的页。
要对数据库的数据进行修改时,先要修改缓冲池中页,然后再在合适的时候刷新到磁盘。注意并不是修改后就刷新到磁盘,而是通过一种称为Checkpoint的机制刷新回磁盘。
缓冲池大小设置
通过参数innodb_buffer_pool_size来进行设置。
多个缓冲池实例
现在可以通过参数innodb_buffer_pool_instances来设置缓冲池的实例。每个页可以根据哈希值平均分配到多个实例中,可以增强数据库的并发处理能力。
标签:存储,读取,缓冲,池中,引擎,InnoDB,内存,该页,磁盘 来源: https://blog.csdn.net/qq_45331503/article/details/114786571