前6节中说过,在一个表上有更新的时候,跟这个表有关的查询缓存会失效,所以执行一条update语句就会把表T上所有缓存结果都清空。这也就是我们一般不建议使用查询缓存的原因。
接下来分析其会通过词法和语法解析知道这是一条更新语句。优化器决定要使用ID这个索引。然后,执行器负责具体执行,找到这一行,然后更新。
与查询流程不一样的是,更新流程还涉及两个重要的日志模块:redo log(重做日志)和binlog(归档日志)。
执行过程
有了前八节的的概念性理解后,再来看执行器和InnoDB引擎在执行一个简单的update语句时的内部流程:update T set c=c+1 where ID=2;
网友评论