openGauss内核分析(十):数据库搜索引的创建过程
openGauss内核分析:数据库索引可以提高数据的访问速度,openGauss支持唯—索引、多字段索引、部分索引和表达式索引。
openGauss内核分析(九):数据库表的创建过程
openGauss内核分析(九):数据库表的创建过程.除了DML之外的所有查询都通过ProcessUtility模块来执行,包括了各类DDL语句、事务相关语句、游标相关语句等。
openGauss内核分析(八):执行算子探究
openGauss内核分析--执行引擎位于优化器和存储引擎之间,负责将数据从存储引擎读取出来,根据计划将数据处理加工返回给客户端。
openGauss内核分析(七):SQL by pass & 经典执行器
执行引擎一般负责查询的执行,执行引擎在SQL执行栈中起到接收优化器生成的执行计划Plan、并对通过存储引擎提供的数据读写接口,实现对数据进行计算得到查询的结果集。
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 多线程架构启动过程。