SQL语句在数据库中的执行过程是怎样的?
下面的图示展示了这个过程。请注意,不同数据库的架构不同,图示展示了一些常见的设计。

步骤1 - 通过传输层协议(如TCP)将SQL语句发送到数据库。
步骤2 - SQL语句被发送到命令解析器,在那里经过语法和语义分析,并生成查询树。
步骤3 - 查询树被发送到优化器。优化器生成执行计划。
步骤4 - 执行计划被发送到执行器。执行器从执行中提取数据。
步骤5 - 访问方法提供执行所需的数据提取逻辑,从存储引擎中检索数据。
步骤6 - 访问方法决定SQL语句是否为只读。如果查询是只读的(SELECT语句),则传递给缓冲管理器进行进一步处理。缓冲管理器在缓存或数据文件中查找数据。
步骤7 - 如果语句是UPDATE或INSERT,则传递给事务管理器进行进一步处理。
步骤8 - 在事务期间,数据处于锁定模式。这由锁管理器确保。它还确保事务的ACID属性。