InnoDB存储引擎中缓冲池(Buffer Pool),是一个放在内存里的组件,可以缓存数据,在查询的时候,先查内存缓冲池,如果没有就从磁盘读取再缓存到Buffer Pool,数据的增删改查在内存中进行。
当InnoDB存储引擎要执行更新语句的时候 ,比如对“id=10”这一行数据,他其实会先将“id=10”这一行数据看看是否在缓冲池里,如果不在的话,那么会直接从磁盘里加载到缓冲池里来,而且接着还会对这行记录加独占锁。
磁盘预读:
如果我需要读取一个字符a从磁盘中,是真的只取了一个字符吗?
内存跟磁盘在进行数据交互的时候由一个最基本的逻辑单元,称之为页,或者叫 datapage,不同的操作系统页的大小是不同的,一般是4k,或者&k,每次在进行读取的时候需要读取4k的整数倍,innodb存储引擎默认读取的是16kb的数据。
