第九节、一条SQL更新语句的执行过程

前6节中说过,在一个表上有更新的时候,跟这个表有关的查询缓存会失效,所以执行一条update语句就会把表T上所有缓存结果都清空。这也就是我们一般不建议使用查询缓存的原因。

接下来分析其会通过词法和语法解析知道这是一条更新语句。优化器决定要使用ID这个索引。然后,执行器负责具体执行,找到这一行,然后更新。

与查询流程不一样的是,更新流程还涉及两个重要的日志模块:redo log(重做日志)和binlog(归档日志)。

执行过程

有了前八节的的概念性理解后,再来看执行器和InnoDB引擎在执行一个简单的update语句时的内部流程:update T set c=c+1 where ID=2;

《第九节、一条SQL更新语句的执行过程》

《第九节、一条SQL更新语句的执行过程》

《第九节、一条SQL更新语句的执行过程》

    原文作者:西伯利亚的bug王
    原文地址: https://www.jianshu.com/p/7114d92548fc
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞