MySQL最常用的就是InnoDB存储引擎,我们借助一条更新语句的执行,来理解下InnoDB存储引擎的架构设计原理。
假设我们有一条SQL语句是这样的:
update users set name = '李四' where id = 1;
SQL语句的执行流程
这条SQL语句是如何执行的?
- 首先我们的系统通过一个数据库连接发送到了MySQL上
- 然后会经过SQL接口、解析器、优化器、执行器几个环节,解析SQL语句,生成执行计划
- 接着去由执行器调用InnoDB存储引擎的接口去执行。
InnoDB的重要内存组件Buffer Pool(缓冲池)
InnoDB存储引擎中有一个非常重要的放在内存里的组件,就是缓冲池(Buffer Pool),这里面会缓存很多的数据,以便于以后在查询的时候,万一你要是内存缓冲池里有数据,就可以不用去查磁盘了。然后在我们更新“id=1”这一行数据的时候,肯定是不允许别人同时更新的,所以