SQL解析和编译的问题,这个选啥

关于TIDB数据库中SQL的解析和编译,描述正确的是哪些?(请选择2项)
A.编译(compile)操作的产物是AST语法树
B.逻辑优化发生在编译(Compile)操作中
C.SQL语句的TSO获取一般在解析和编译操作之前完成
D.物理优化发生在编译(Compile)操作中

A. 解析的产物才是 AST 抽象语法数,所以 A :x:
B. *compile 阶段:根据 parse 阶段输出的 AST 和统计信息,编译出执行计划。整个过程主要步骤为逻辑优化与物理优化,前者通过一些规则对查询计划进行优化,例如基于关系代数的列裁剪等,后者通过统计信息和基于成本的优化器,对执行计划的成本进行估算,并选择整体成本最小的物理执行计划。 参考:https://docs.pingcap.com/zh/tidb/stable/performance-tuning-methods#parsecompile-和-execute-duration 所以 B 对。
C. 获取 TSO 是与解析编译是异步的,不一定是之前吧
D. 跟 B 一样对

所以选 B、D。

1 个赞

只有D选项对吧

谢谢解释