数据库中如何执行 SQL 语句?
下图显示了这一过程。请注意,不同数据库的架构各不相同,下图展示了一些常见的设计。
通过传输层协议(如 TCP)向数据库发送 SQL 语句。
将 SQL 语句发送到命令解析器,在那里进行语法和语义分析,然后生成查询树。
将查询树发送给优化器。优化器会创建一个执行计划。
将执行计划发送给执行器。执行器从执行计划中获取数据。执行器与存储引擎交互以访问数据。
访问方法提供执行所需的数据获取逻辑,从存储引擎获取数据。
访问方法决定 SQL 语句是否只读。如果查询是只读的(SELECT 语句),则将其传递给缓冲区管理器进行进一步处理。缓冲区管理器会在缓存或数据文件中查找数据。
如果语句是 UPDATE 或 INSERT,则将其传递给事务管理器做进一步处理。
在事务处理期间,数据处于锁定模式。这是由锁管理器保证的。它还能确保事务的 ACID 属性。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8