数据库
文章平均质量分 91
数据库学习
J.Kuchiki
这个作者很懒,什么都没留下…
展开
-
【OpenGauss源码学习 —— 执行算子(SeqScan算子)】
在OpenGauss中,执行算子是用于执行数据库查询计划的基本操作单元。执行算子负责处理查询计划中的每个节点,执行各种操作,从而实现用户查询的功能。执行算子模块包含多种计划执行算子,是计划执行的独立单元,用于实现具体的计划动作。执行计划包含4类算子,分别是控制算子、扫描算子、物化算子和连接算子。这些算子统一使用节点(node)表示,具有统一的接口,执行流程采用递归模式。整体执行流程是:首先根据计划节点的类型初始化状态节点(函数名为“ExecInit+算子名”),然后再回调执行函数。原创 2023-08-09 17:35:28 · 1092 阅读 · 0 评论 -
【PostgreSQL内核学习(十)—— 查询执行(可优化语句执行)】
可优化语句的共同特点是它们被查询编译器处理后都会生成查询计划树,这一类语句由执行器(Executor)处理。和,其输入是包含查询计划树的数据结构QueryDesc,输出则是相关执行信息或结果数据。如果希望执行某个计划树,仅需构造包含此计划树的QueryDesc,并依次调用三个过程即能完成相应的处理过程。从图6-6可以看到,执行器的三个接口函数都是在Portal的相关函数中调用的,分别负责执行器的初始化执行和清理工作Portal。原创 2023-07-23 22:08:52 · 739 阅读 · 0 评论 -
【PostgreSQL内核学习(九)—— 查询执行(数据定义语句执行)】
数据定义语言(DDL,Data Definition Language)是一类用于定义数据模式、函数等的功能性语句。不同于元组增删查改的操作,其处理方式是为每一种类型的描述语句调用相应的处理函数。数据定义语句的处理过程比较简单,其执行流程最终会进入到处理器,然后执行语句对应的不同处理过程。由于数据定义语句的种类很多,因此整个处理过程中的数据结构和方式种类繁冗、复杂,但流程相对简单、固定。由于需要处理所有类型的数据定义语句,因此其输人数据结构的类型也是各种各样,每种类型的数据结构表示不同的操作类型。原创 2023-07-23 17:37:29 · 870 阅读 · 0 评论 -
【PostgreSQL内核学习(八)—— 查询执行(查询执行策略)】
查询编译器将用户提交的SQL查询语句转变成执行计划之后,由查询执行器继续执行查询的处理过程。在查询执行阶段,将根据执行计划进行数据提取、处理、存储等一系列活动,以完成整个查询执行过程。查询执行过程更像一个结构良好的裸机,执行计划为输人,执行相应的功能。因此,本章重点介绍查询执行器的框架结构执行方式,结合实例为读者说明数据库执行计划的相关步骤,帮助读者进一步理解PostgreSQL的查询执行过程。查询执行器的框架结构如图6-1所示。同查询编译器一样,查询执行器也是被函数调用,只是调用的顺序上。原创 2023-07-22 18:26:31 · 1077 阅读 · 0 评论 -
【PostgreSQL内核学习(七)—— 查询规划(生成路径)】
对于SQL中的计划命令的处理,无非就是获取一个(或者一系列)元组,然后将这个元组返回给用户或者以其为基础进行插入、更新、删除操作。因此对于一个执行计划来说,最重要的部分就是告诉查询执行模块如何取到要操作的元组。原创 2023-07-21 11:20:10 · 833 阅读 · 0 评论 -
【PostgreSQL内核学习(六)—— 工具使用学习】
本文的工具学习内容来自于《小宇带你学pg内核分析》!!原创 2023-07-20 19:52:18 · 466 阅读 · 0 评论 -
【PostgreSQL内核学习(五)—— 查询规划(预处理)】
预处理的主要工作是提升子链接和子查询以及预处理表达式和HAVING子句等。预处理部分主要是对查询树Query中的范围表rtable和连接树jointree等进行处理。原创 2023-07-20 15:15:06 · 528 阅读 · 0 评论 -
【PostgreSQL内核学习(四)—— 查询规划】
查询规划是数据库管理系统中的关键步骤之一,它涉及将用户提交的查询语句转换为可执行的执行计划。查询规划的目标是找到最优的执行计划,以在数据库中高效地执行查询操作。该过程包括查询优化、索引选择、连接顺序、访问方法等决策,以及生成最终的查询执行计划,以便在数据库系统中执行查询并返回结果。原创 2023-07-20 10:49:57 · 821 阅读 · 0 评论 -
【PostgreSQL内核学习(二)—— 查询分析】
查询分析是查询处理的一个子过程。查询处理是一个更广泛的概念,包含了整个查询的生命周期,从接收查询到最终的结果返回。在查询处理过程中,查询分析是其中的一个重要组成部分。原创 2023-07-18 14:03:20 · 2246 阅读 · 1 评论 -
【SQL中case then的用法】
SQL中case then的用法 当我们需要从数据源上直接判断数据显示代表的含义的时候 ,就可以在SQL语句中使用CASE THEN这个函数了。 其中case then有两种格式:1.第一种格式:case 列名when 条件值1 then 选项1when 条件值2 then 选项2.......else 默认值 end1.第二种格式:case when 列名=条件值1 then 选项1when 列名=条件值2 then 选项2.......else 默认值 end话不多说原创 2022-04-08 20:01:21 · 8972 阅读 · 0 评论 -
【SQL中limit的用法】
SQL中limit的用法说明:limit子句用于限制查询结果返回的数量,常用于分页查询。用法:【select * from tableName limit i,n 】参数:tableName: 为数据表; i: 为查询结果的索引值(默认从0开始); n: 为查询结果返回的数量案例:(来自于力扣的一道简单题)表: Orders+-----------------+----------+| Column Name | Type |+-------------原创 2022-04-07 19:24:15 · 36292 阅读 · 0 评论