![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Pgsql内分+pg指南内探
文章平均质量分 83
而我国肥肉
fgh431
非淡泊无以明志
展开
-
一:数据库集簇等等
文章目录1.2数据库集簇的物理结构1.2.1数据库集簇的布局1.2.2数据库布局1.2数据库集簇的物理结构数据库集簇在本质上是文件目录即基础目录包含一系列子目录与文件数据库集簇里面有好多个数据库,在这个目录里面的base目录下,有很多数据库。initdb在指定目录下创建基础目录从而初始化一个新的数据库集簇基础目录的路径会被配置到环境变量$PGDATA不必要 图1.2一个Postgresql数据库集簇base每一个子目录都对应一个数据库每个表和索原创 2020-09-06 18:21:12 · 778 阅读 · 0 评论 -
2 进程和内存架构
文章目录2.1进程架构2.1.1 Postgres服务器进程2.1.2后端进程2.1进程架构客户端服务器风格的RDBMS多进程架构运行在单台主机 通常所说的Pg服务器是一系列协同工作的进程集合postgres serverprocess所有数据库集簇管理进程的父进程每个backend process负责处理客户端发出的查询和语句。各种background process执行各种数据库管理任务(例如清理过程与存档过程)各种复制相关进程(replication原创 2020-12-11 12:49:40 · 128 阅读 · 0 评论 -
三:查询处理
文章目录3.2单表查询的代价估计3.2单表查询的代价估计Pg查询优化是基于代价的。代价是无量纲的值,它不是一种绝对的性能指标,但可以作为比较各种操作代价时的相对性能指标。 costsize.c中函数估算各种操作的代价。所有被执行器执行的操作都有着相应的代价函数。cost_seqscan()和 cost_index()估算顺序扫描和索引扫描的代价。 Pg有三种代价总代价启动代价和运行代价的和,只有启动代价和运行代价是单独估计 1.启动代价:读取到原创 2020-09-17 19:33:06 · 319 阅读 · 0 评论 -
四:FDW
文章目录FDW实用且有趣,图4.1是FDW涉及的基本概念。 03年,SQL标准添加一个访问远程数据的规范,SQL外部数据管理。Pg的9.1版开发出FDW,实现一部分 SQL/MED中的特性 SQL/MED中,远程服务器上的表称外部表Pg外部数据包装器使用与本地表类似的方式,通过SQL/MED来管理外部表 安装完必要的扩展并配置后,就可访问远程服务器上的外部表两远程服务器postgresqll和mysql分别有啥和啥两张表。本地服务器上执行SELECT查询原创 2020-09-06 18:53:04 · 236 阅读 · 0 评论 -
五:并发控制
文章目录多个事务同时在数据库中运行时,并发控制是一种用于维持一致性与隔离性的技术 宽泛讲三种并发控制技术MVCCS2PLOCC都有多种变体MVCC中,每个写操作都创建一个新版本数据项保留其旧版本当事务读取数据对象时,系统会选择其中的一个版本,通过这种方式来确保各个事务间隔离读不会阻塞写,写也不会阻塞读基于S2PL的系统在写操作发生时会阻塞相应对象上的读操作,因为写入者获取了对象上的排他锁Postgresql和一些关系型数据库用一种MVCC的变体SI原创 2020-09-22 13:08:35 · 370 阅读 · 0 评论 -
8 缓冲区管理器
文章目录8.1概览1.缓冲区管理器的结构2.缓冲区标签管理共享内存和持久存储之间的数据传输重要Postgresql的缓冲区管理器十分高效 图8.1展示缓冲区管理器存储和后端进程之间的关系后续的章节分别介绍缓冲区管理器的结构缓冲区管理器的锁缓冲区管理器的工作原理环形缓冲区脏页刷盘8.1概览1.缓冲区管理器的结构缓冲表、缓冲区描述符和缓冲池组成缓冲池层存储着数据文件页面表页与索引页及其相应的自由空间映射和可见性映射的页面缓冲池是一个数组,每个槽存储原创 2020-09-27 15:26:48 · 413 阅读 · 0 评论 -
九: WAL
文章目录9.1概述9.1.1没有WAL的插入操作9.1.2插入操作与数据库恢复事务日志是数据库关键组件事务日志是数据库系统中所有变更与行为的历史记录服务器崩溃时可确保数据不丢失事务日志含每个已执行事务的相关信息当服务器崩溃时服务器应能通过重放事务日志中的变更与行为来恢复数据库集群 Write Ahead Logging,将变更与行为写入事务日志的协议或规则Pg中,Write Ahead Log,被当成事务日志的同义词,也指代一种将行为写入事务日志的实原创 2020-09-06 19:39:09 · 193 阅读 · 0 评论 -
11 流复制
文章目录9.1版本中实现了流复制。属一主多从类型的复制,主和从,Pg中通常称主和备。 存储数据库副本的每个节点被称副本。每一次对数据库的写入操作都需要传播到所有副本上,否则副本就会包含不一样的数据。最常见的解决方案是基于领导者的复制,也称主动/被动或主/从复制。副本之一被指定为领导者,也称为主库或首要。当客户端要向数据库写入时,它必须将请求发送给领导者,领导者会将新数据写入其本地存储。其他副本被称为追随者,也称为只读副本、从库、次要或热备。...原创 2021-01-22 11:42:44 · 257 阅读 · 1 评论 -
2pgsql体系结构
文章目录2.1系统表Pg是一种几乎可以运行在各种平台上的免费的开放源码的对象关系数据库,以关系数据库和SQL为基础,扩展了抽象数据类型,从而具备面向对象特性的数据库。Pg由连接管理系统(系统控制器)、编译执行、存储管理、事务、系统表五部组成,图2-1。连接管理接受外部操作对系统的请求,对操作请求进行预处理和分发,起系统逻辑控制作用编译执行由查询编译器、查询执行器,完成操...原创 2020-02-22 12:18:58 · 2227 阅读 · 0 评论 -
3 存储管理
文章目录3.1 存储管理器的体系结构3.4 表操作与元组操作3.4.1表操作2.扫描表数据库管理系统的任务本质上是向存储设备上写入数据或者从存储设备上读出数据,因此对于一个DBMS来说,存储的管理是一项非常基础和重要的技术。在 Postgresql中,有专门的模块负责管理存储设备(包括内存和外存),我们称之为存储管理器。存储管理器提供了一组统一的管理外存与内存资源的功能模块,所有对外存与内...原创 2020-03-12 16:49:03 · 906 阅读 · 0 评论 -
3内管理存储
文章目录3.3内存管理3.3.1内存上下文概述3.3内存管理3.3.1内存上下文概述原创 2019-07-29 11:05:35 · 205 阅读 · 0 评论 -
4 索引
文章目录4.2 B-Tree索引4.2 B-Tree索引Pg的B-Tree索引是在Lehman和Yao的论文“ Efficient Locking for Concurrent Operations on B-Tree”基础上结合Pg要求来实现的结构类似于B+树http://portal.acm.org/citation.cfm?id=319663 B+树为B树的变形,它的结构特点如下:B+树的所有关键字均在叶子节点,按关键字排序以顺序链的方式链接,叶子节点还保存了指向相应记录的原创 2020-09-07 15:41:04 · 325 阅读 · 0 评论 -
五查编
第一段是查询编译的第一个模块包括那三个部分?作用是?分别借助哪两个工具来完成各自工?第二段sql指令作为什么传给谁?对其进行那两个分析生成啥?然后进行啥得到啥?基本流程5-2所示5-3展示了查询分析中主要函数调用关系exec_simple_query调用pg_parse_query完成啥并产生啥?接着调用pg_analyze_and_rewrite逐个对分...原创 2019-07-29 11:06:37 · 464 阅读 · 1 评论 -
6查询执行
四种执行策略简单SQL语句被查询编译器转化为1个执行计划树或1个非计划树操作比较复杂的呢?下图什么意思?把由查询编译器输出的什么或什么称为1个原子操作执行策略选择器需根据原子操作的不同调用相应的处理部件有些sql虽然仅被化为一种原子操作,但他可能需要缓存语句执行结果,等到sql语句执行完以后,再返回被缓存的结果。对于可优化语句,当执行修改元组的操作,希望能够返回被...原创 2019-07-17 10:47:33 · 893 阅读 · 0 评论 -
7 事务处理与并发控制
文章目录7.1事务系统简介7.1事务系统简介事务是数据库操作的执行单位,一个事务提交之后或者完整执行,或者完全不执行。pg中,任何语句的执行都存在于事务环境中,任何语句开始执行之前事务就开始了。语句执行完后,事务结束。通常情况下,我们提交的查询语句或者更新语句会被送入一个默认事务环境中执行。Pg中负责管理事务运行的模块称为事务管理器,其结构如图7-1。...原创 2021-01-19 00:20:05 · 364 阅读 · 0 评论