9

大多数关系数据库通过四个步骤处理 JDBC/SQL 查询:

  1. 解析传入的 SQL 查询
  2. 编译 SQL 查询
  3. 规划/优化数据采集路径
  4. 执行优化查询/获取并返回数据

我想知道“解析传入查询”的真正含义是什么?“计划/优化数据采集路径”是什么意思?

4

3 回答 3

2

解析是编译的过程之一。

编译器的阶段:

在此处输入图像描述

来源:编译器阶段

于 2014-08-22T19:55:46.323 回答
2
  1. 解析意味着检查输入的字符并将其识别为命令或语句,方法是查看字符中的关键字和标识符,忽略注释,将引用的部分安排为字符串常量,并将整体结构与语言语法相匹配,从而理解这一切。

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

于 2014-08-22T19:50:05.363 回答
1

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

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

于 2014-08-22T19:54:56.667 回答