【发布时间】:2014-10-16 18:06:31
【问题描述】:
大多数关系数据库通过四个步骤处理 JDBC/SQL 查询:
- 解析传入的 SQL 查询
- 编译 SQL 查询
- 规划/优化数据采集路径
- 执行优化查询/获取并返回数据
我想知道“解析传入查询”的真正含义是什么?而“规划/优化数据采集路径”是什么意思?
【问题讨论】:
标签: sql parsing query-parser
大多数关系数据库通过四个步骤处理 JDBC/SQL 查询:
我想知道“解析传入查询”的真正含义是什么?而“规划/优化数据采集路径”是什么意思?
【问题讨论】:
标签: sql parsing query-parser
解析意味着检查输入的字符并将其识别为命令或语句,方法是查看字符中的关键字和标识符,忽略 cmets,将引用部分安排为字符串常量,并将整体结构与语言语法匹配感觉这一切。
计划/优化意味着找出确定结果的最佳方式(在所有可能的方式中),通常与执行时间相关。这也可能意味着最小化所需的锁数量。也许查询的某些部分可以忽略(where ... and 1 == 1)或者根本不需要访问表等。
【讨论】:
【讨论】:
1) 解析:根据 SQL 语法规则等对查询进行句法分析,并尝试将查询“标记”为基本部分形式。
2) 计划/优化:在那个阶段,SQL 引擎会尝试评估执行查询的最佳方式。它试图利用现有的索引、集群和表关系;寻找绕过全表扫描的方法,通过避免重复数据读取来有效利用缓存等等。
【讨论】: