查询语句的执行过程通常是功能模块,例如连接器,分析仪,优化器和执行器,最后到达存储引擎。
那么,更新语句的执行过程是什么?
以前,您可能经常听到DBA同事说MySQL可以在半个月内返回任何一个秒。同时,您是否在内心深处感到好奇?
我们仍然从更新语句的表开始。以下是此表的创建语句。该表具有主密钥ID和一个整数字段C:
如果要添加ID = 2行的值,则SQL语句将如下编写:
我之前介绍了SQL语句的基本执行链接。在这里,我将在这里拍照。您还可以简要介绍一下此图片进行评论。首先,可以确定查询语句的过程也将再次进行。
在执行语句之前,您必须连接数据库,即连接器的工作。
正如我之前说的那样,当表上有更新时,与此表相关的查询缓存将失败,因此该语句将清除表T上的所有缓存结果。这就是为什么我们通常不建议使用查询缓存。
接下来,分析仪将知道这是通过短语和语法分析的更新语句。优化器决定使用ID索引。然后,执行器负责特定的执行,找到此行,然后更新。
与查询过程不同,更新过程还涉及两个重要的日志模块。他们是我们今天要讨论的主角:重做日志(重做日志)和binlog(存档日志)。如果您与MySQL保持联系,那么两个单词肯定会绕过,我背后的内容将会继续强调您。但话虽如此,重做日志和Binlog在设计中有许多有趣的地方,并且这些设计思想也可以在您自己的过程中使用。