Skip to content

InnoDB存储引擎

存储引擎

在系统执行 update 语句时,经过 Server层 的处理,最终要由执行器去调用存储引擎去执行。

而 MySQL 存储引擎有很多种,比如 InnoDBMyISAM等。

MySQL的默认存储引擎已经变更为了 InnoDB


update 语句操作的数据最终是要写入磁盘中的,但是如果每次都直接操作磁盘,磁盘I/O的开销是很大的。所以需要每次将操作的数据加载到内存中,减少磁盘I/O次数,再在适当时机进行刷盘操作即可。InnoDB 中使用的这块内存叫做 Buffer Pool

缓冲池 - Buffer Pool

MySQL的数据最终存在磁盘中,而缓冲池位于内存中。在第一次查询的时候数据会被加载到缓冲池中,后续请求会从缓冲池中获取。

执行器调用存储引擎的查询流程:

  1. InnoDB 会在缓冲池中查找 id=1 的数据是否存在。
  2. 不存在,会从磁盘中查找,并将其放在缓冲池中。
  3. 该条记录会被加上独占锁(保证同时只能被一个线程操作)。