会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
肥叔菌
博客园
首页
新随笔
联系
订阅
管理
2021年2月23日
PostgreSQL数据库查询——exec_simple_query函数分析
摘要: 上面这张图从整体上概括了Postgresql的查询处理的步骤以及牵涉到的各个模块,源码参考自postgresql-12.6。 一、Parser(查询分析模块) 查询分析模块主要是pg_parse_query函数(\src\backend\tcop\postgres.c 631行),输入const c
阅读全文
posted @ 2021-02-23 23:20 肥叔菌
阅读(4239)
评论(0)
推荐(0)
2021年2月2日
PostgreSQL数据库查询优化——查询树
摘要: 查询优化是数据库管理系统中承上启下的一个模块,它接收来自语法分析模块传递过来的查询树,在这个查询树的基础上进行了逻辑上的等价变换、物理执行路径的筛选,并且把选择出的最优的执行路径传递给数据库的执行器模块。查询优化器的输入是查询树,输出是查询执行计划。 查询优化器和数据库用户之间的信息不对称,查询优化
阅读全文
posted @ 2021-02-02 23:03 肥叔菌
阅读(2520)
评论(0)
推荐(2)
2021年1月26日
PostgreSQL数据库查询——scan.l分析
摘要: src/backend/parser/scan.l --> lexical scanner for PostgreSQL 该文件中的规则需要和psql lexer一致。Lex用来生成扫描器,其工作是识别一个一个的模式,比如数字、字符串、特殊符号等,然后将其传给Yacc。 定义段 定义段包括文字块(l
阅读全文
posted @ 2021-01-26 23:15 肥叔菌
阅读(1382)
评论(0)
推荐(0)
2021年1月19日
PG服务进程(Postgres)——初始化Postgres的运行环境
摘要: Postgres进程是实际的接受查询请求并调用相应模块处理查询的PostgreSQL服务进程。它直接接受用户的命令进行编译执行,并将结果返回给用户。如此循环,直到用户断开连接。用户的命令分为两种:一种是查询命令,即插入、删除、更新和选择四种命令;另一种是非查询命令,如创建/删除表、视图、索引等命令。
阅读全文
posted @ 2021-01-19 23:36 肥叔菌
阅读(1689)
评论(0)
推荐(0)
2021年1月14日
PG守护进程(Postmaster)——初始化GUC配置参数
摘要: PostgreSQL系统的主要功能都集中于Postgres程序,其入口是Main模块中的main函数,在初始化数据集簇、启动数据库服务器时,都将从这里开始执行。Main模块主要的工作是确定当前的操作系统平台,并据此做一些平台相关的环境变量设置和初始化,然后通过对命令行参数的判断,将控制转到相应的模块
阅读全文
posted @ 2021-01-14 23:52 肥叔菌
阅读(3516)
评论(0)
推荐(0)
2021年1月12日
Greenplum Python专用库gppylib学习——GpArray
摘要: gparray.py依赖的python包(datetime、copy、traceback、os),依赖的gp包(gplog、utils、db、gpversion、commands.unix) 1 from datetime import date 2 import copy 3 import tra
阅读全文
posted @ 2021-01-12 23:04 肥叔菌
阅读(614)
评论(0)
推荐(0)
2020年12月31日
PostgreSQL数据库集簇初始化——initdb初始化数据库(数据库初始设置二)
摘要: 数据库初始设置包括创建系统视图、系统表TOAST表等,复制template1来创建template0和postgres,这些操作都用普通的SQL命令来完成。 setup_sysviews函数建立系统视图,从system_views_file指向的文件读取SQL,并控制子进程执行这些SQL。 1 st
阅读全文
posted @ 2020-12-31 13:03 肥叔菌
阅读(368)
评论(0)
推荐(0)
2020年12月29日
PostgreSQL数据库集簇初始化——initdb初始化数据库(数据库初始设置一)
摘要: 数据库初始设置包括创建系统视图、系统表TOAST表等,复制template1来创建template0和postgres,这些操作都用普通的SQL命令来完成。如下代码就是用于数据库初始设置。 1 setup_auth(); 2 if (pwprompt || pwfilename) 3 get_set
阅读全文
posted @ 2020-12-29 12:51 肥叔菌
阅读(1025)
评论(0)
推荐(0)
2020年12月28日
PG主程序模块(Main)——数据库PostgreSQL入口
摘要: PostgreSQL系统的主要功能都集中于Postgres程序,其入口是Main模块(src/backend/main/main.c)中的main函数,在初始化数据集簇、启动数据库服务器时,都将从这里开始执行。Main模块主要的工作是确定当前的操作系统平台,并据此做一些平台相关的环境变量设置和初始化
阅读全文
posted @ 2020-12-28 22:32 肥叔菌
阅读(1030)
评论(0)
推荐(0)
2020年12月26日
PostgreSQL数据库集簇初始化——initdb初始化数据库(数据库template1)
摘要: 在bootstrap模式下创建数据库template1,存储在数据目录的子目录base/1/中。 1 /* Bootstrap template1 */ 2 bootstrap_template1(short_version); 3 /* Make the per-database PG_VERSI
阅读全文
posted @ 2020-12-26 13:00 肥叔菌
阅读(472)
评论(0)
推荐(0)
下一页
公告