解析查询意味着什么?

use*_*652 8 sql parsing query-parser

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

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

我想知道"解析传入的查询"到底意味着什么?"计划/优化数据采集路径"是什么意思?

wal*_*lyk 2

  1. 解析意味着检查字符输入并将其识别为命令或语句,方法是在字符中查找关键字和标识符,忽略注释,将引用部分排列为字符串常量,并将整体结构与语言语法相匹配,从而理解这一切。

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