【问题标题】:What does parsing a query mean?解析查询是什么意思?
【发布时间】:2014-10-16 18:06:31
【问题描述】:

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

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

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

【问题讨论】:

    标签: sql parsing query-parser


    【解决方案1】:
    1. 解析意味着检查输入的字符并将其识别为命令或语句,方法是查看字符中的关键字和标识符,忽略 cmets,将引用部分安排为字符串常量,并将整体结构与语言语法匹配感觉这一切。

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

    【讨论】:

      【解决方案2】:

      解析是编译的过程之一。

      编译器的阶段:

      来源:Phases of Compiler

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2017-01-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-14
          • 2013-12-23
          • 2011-07-05
          • 1970-01-01
          • 2011-05-26
          相关资源
          最近更新 更多