InnoDB存储引擎
存储引擎
在系统执行 update 语句时,经过 Server层 的处理,最终要由执行器去调用存储引擎去执行。
而 MySQL 存储引擎有很多种,比如 InnoDB、MyISAM等。
MySQL的默认存储引擎已经变更为了 InnoDB
update 语句操作的数据最终是要写入磁盘中的,但是如果每次都直接操作磁盘,磁盘I/O的开销是很大的。所以需要每次将操作的数据加载到内存中,减少磁盘I/O次数,再在适当时机进行刷盘操作即可。InnoDB 中使用的这块内存叫做 Buffer Pool。
缓冲池 - Buffer Pool

MySQL的数据最终存在磁盘中,而缓冲池位于内存中。在第一次查询的时候数据会被加载到缓冲池中,后续请求会从缓冲池中获取。
执行器调用存储引擎的查询流程:
- InnoDB 会在缓冲池中查找 id=1 的数据是否存在。
- 不存在,会从磁盘中查找,并将其放在缓冲池中。
- 该条记录会被加上独占锁(保证同时只能被一个线程操作)。