- 1 数据库概述
- 1.1 DBMS 简史
- 1.2 数据库理论
- 1.3 事务 Transaction
- 1.4 SQL
- 1.5 数据库接口
- 本章参考
- 2 Relational 关系数据库
- 2.1 关系理论
- 2.2 Oracle
- 2.5 Microsoft SQL Server
- 2.6 DB2
- RDBS 比较
- 本章参考
- 3 NoSQL 非关系数据库
- 3.1 NoSQL 分类
- 3.2 键值 key-value 数据库
- 3.3 列存储数据库
- 3.4 图形数据库
- 本章参考
- 4 NewSQL
- 4.1 NewSQL 分类
- 4.2 分布式数据库 Distributed
- 本章参考
- 5 时序数据库 TSDB
- 5.1 简介
- 5.2 时序数据库比较
- 本章参考
- 6 SQL 引擎
- 6.1 SQL 引擎分类
- 6.2 SQL On Hadoop
- 本章参考
- 7 其它数据库
- 7.1 内存数据库 In-memory
- 7.2 嵌入式数据库 Embed
- 7.3 搜索引擎
- 本章参考
- 8 各种数据库分析比较
- 8.1 数据库排行 db-engines
- 8.2 数据库技术选型
- 8.3 DB 性能比较
- 8.4 国产数据库产品列表
- 8.5 DB 常用 SQL 比较
- 本章参考
- 9 SQL 调优
- 9.1 SQL JOIN
- 9.2 SQL 执行流程
- 10 数据库大型应用实例
- 10.1 负载均衡技术
- 10.2 数据库的高可用 HA
- 10.3 数据库的读写分离
- 10.4 数据库拆分(分布式)
- 10.5 跨库查询
- 本章参考
- 参考资料
- 附录
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
9.2 SQL 执行流程
SQL 引擎从接受 SQL 语句到执行 SQL 语句需要经历的步骤如下图和下表所示。其中,红色字体部分为 DBA 可以介入实施调优的环节。
图 1 SQL 引擎执行查询类 SQL 语句的流程
表格 46 SQL 引擎执行查询类 SQL 语句的步骤说明
步骤 | 说明 |
---|---|
1、词法& 语法解析 | 按照约定的 SQL 语句规则,把输入的 SQL 语句从字符串转化为格式化结构(Stmt)。 |
2、语义解析 | 将“词法&语法解析”输出的格式化结构转化为数据库可以识别的对象。 |
3、查询重写 | 根据规则把“语义解析”的输出等价转化为执行上更为优化的结构。 |
4、查询优化 | 根据“查询重写”的输出和数据库内部的统计信息规划 SQL 语句具体的执行方式,也就是执行计划。统计信息和 GUC 参数对查询优化(执行计划)的影响,请参见 调优手段之统计信息 和 调优手段之 GUC 参数 。 |
5、查询执行 | 根据“查询优化”规划的执行路径执行 SQL 查询语句。底层存储方式的选择合理性,将影响查询执行效率。详见 调优手段之底层存储 。 |
表格 47 各数据库的 SQL 执行计划
数据库 | 语法 |
---|---|
MySQL | EXPLAIN '$SQL' |
Oracle | 执行计划 |
Postgres | EXPLAIN |
Mongo | EXPLAIN |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论