openGauss内核分析(六) 执行计划生成
SQL语句解析完成后被解析成Query结构,在进行优化时是以Query为单位进行的,Query的优化分为基于规则的逻辑优化(查询重写)和基于代价的物理优化(计划生成),主入口函数为subquery_planner。subquery_planner函数接收Query(查询树),返回一个Plan(计划树)。
openGauss内核分析(五):统计信息与行数估计
openGauss内核分析(五),相对于逻辑优化,这种优化方法是物理优化:根据数据的分布(统计信息)情况来对查询执行路径进行评估,从可选的路径中选择一个执行代价最小的路径进行执行,例如是否选择索引SeqScan vs. IndexScan,选择哪个索引,两表关联选择什么样的连接顺序,选择怎样的具体算法等。
openGauss内核分析(四):查询重写
openGauss内核分析(四):查询重写。SQL语言是丰富多样的,非常的灵活,不同的开发人员依据经验的不同,手写的SQL语句也是各式各样,另外还可以通过工具自动生成。
openGauss内核分析(三):SQL解析
openGauss内核分析(三):SQL解析,在传统数据库中SQL引擎一般指对用户输入的SQL语句进行解析、优化的软件模块。
openGauss内核分析(二):简单查询的执行
上一期酷哥分析了openGauss数据库的启动过程,这一期主要分析简单查询语句在业务处理线程Postgres上的执行流程,并介绍如何利用gdb梳理代码逻辑。
openGauss内核分析(一):多线程架构启动过程详解
openGauss数据库自2020年6月30日开源以来,吸引了众多内核开发者的关注。那么openGauss的多线程是如何启动的,一条SQL语句在 SQL引擎,执行引擎和存储引擎的执行过程是怎样的,酷哥做了一些总结,第一期内容主要分析openGauss 多线程架构启动过程。