Sql的执行过程
1、首先通过tomcat分配线程接受用户请求
2、通过数据库驱动包获取线程建立连接
3、SQL解析器对Sql语句,词法分析,语法分析
4、通过查询优化器对Sql语句进行最优执行选出最优索引。
5、查询优化器会调用存储引擎真正去执行SQL
6、存储引擎会调用执行器去执行SQL
存储引擎Sql执行过程 (innodb):
1、innodb 存储引擎会在缓冲池(Buffer Pool)中查找数据是否存在
2、如果不存在,去磁盘中加载,放入缓冲池中,select操作共享锁,update独占锁
undo log
1、innodb 存储引擎加载数据的同时将操作前的记录保存到 undo日志中
redo log
1、redo 则是记录的是数据被修改之后的值。
更新操作
1、innodb 会在 Buffer Pool执行数据的更新操作
2、更新后的数据写入 redo log buffer 中
3、根据刷盘策略,刷入本地磁盘中,一般是立即写入