解析查询意味着什么?

时间:2014-08-22 19:48:25

标签: sql parsing query-parser

大多数关系数据库分四步处理JDBC / SQL查询:

  1. 解析传入的SQL查询
  2. 编译SQL查询
  3. 规划/优化数据采集路径
  4. 执行优化查询/获取并返回数据
  5. 我想知道“解析传入的查询”到底是什么意思? “计划/优化数据采集路径”是什么意思?

3 个答案:

答案 0 :(得分:2)

解析是编译过程之一。

编译器的阶段:

enter image description here

来源:Phases of Compiler

答案 1 :(得分:1)

  1. 解析意味着通过查看关键字和标识符的字符,忽略注释,将引用的部分排列为字符串常量,并将整体结构与语言语法匹配来检查字符输入并将其识别为命令或语句这一切的感觉。

  2. 计划/优化意味着找出确定结果的最佳方式(通过所有可能的方式),通常与执行时间有关。它还可能意味着最小化所需的锁数。也许可以忽略查询的某些部分(where ... and 1 == 1)或根本不需要访问表等。

答案 2 :(得分:1)

1)解析:根据SQL语法规则等对查询进行句法分析,并尝试将查询“标记”为基本部分形式。

2)规划/优化:在该阶段,SQL引擎尝试评估执行查询的最佳方式。它试图利用现有的索引,集群和表关系;找到全桌扫描的方法,通过避免重复的数据读取来有效利用缓存等等。