MySQL数据库的查询更新流程是如何运行的?

MySQL数据库的查询更新流程是如何运行的?

技术教程gslnedu2025-03-23 18:12:195A+A-


第一步:

1客户端先和MySQL建立网络连接将sqI发送到server层。

2.经过分析器解析sql语法,优化器选择索引生成执行计划,最终给到执行器,调用Inno DB函数接口。


第二步:

读操作

Inno DB存储引擎会先检查Buffer Pool中是否存在所需的B+树数据页,如果存在,直接返回,不存在,从磁盘中读取相应的数据页加载到Buffer Pool中,再返回数据。如果查询的数据是热点数据,还会将数据页加入到自适应哈希索引中,加速后续的查询。

写操作

先将数据写入Buffer Pool,并生成相应的Undolog记录,方便在事务回滚时,能够恢复数据的原始状态

再将写操作记录到Redo Log Buffer(这些

Redo Log会周期性写入磁盘中的Redo Log文件中,【防止数据库崩了,提交的事务丟失)对于辅助索引的更新操作,Inno DB会将这些更新暂时存储在Change Buffer中,等到相关的索引页被读取到Buffer Pool时,再进行实际的更新操作,从而减少磁盘IO,提高写入性能。


同时,所有的变更都会记录到server层的binlog中,以便进行数据恢复。

点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8