暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
PG数据库浅谈.pdf
170
12页
3次
2023-10-27
免费下载
PostgreSQL数据库浅谈
PostgreSQL是什么?
1.1初识PostgreSQL
PostgreSQL 是世界上最先进的开源对象-关系型数据库管理系统(ORDBMS),简称 Postgres Postgres 作为
Ingres的继承者,最初是于1986年,由加州大学伯克利分校的Michael StonebrakerLawrence Rowe提出的,至今
已有 30 多年的历史。根据DB-engine整理的来自谷歌的数据,以及招聘广告和网站提到的信息,与20219月相
比,PostgreSQL 的市场地位提高了35% ,在排行榜上位列第四,仅次于OracleMySQL Microsoft SQL
Server
首先、开源,PostgreSQL 是一个免费并且开源的软件。它的代码基于 PostgreSQL 许可发行, 这是一个类似于 BSD
或者 MIT 的自由开放源码许可协议。用户可以基于任何目的使用、修改和 发布 PostgreSQL,甚至直接包装一下拿出
去卖钱都没问题,唯一的要求就是保留它的版权声明。 这一点相对于 MySQL 社区版的 GPL 协议友好许多。
其次,它的先进,PostgreSQL 使用 C 语言进行开发,最初是为了 UNIX 类平台而设计。不过, PostgreSQL 现在可
以支持各种主流的平台,例如 LinuxBSDAIXHP-UXMac OS XSolaris 以及 Windows 等等。
PostgreSQL 遵循事务的 ACID 原则,高度兼容 SQL 标准,2021 9 月发布的 PostgreSQL 14 至少符合 SQL: 2016
核心一致性的 179 项强制功能中的 170 项。目前,还没有任何关系型数据库 产品完全符合该标准。最新的版本
PostgreSQL 15 已支持merge into 语法。
以下是 PostgreSQL 所支持的主要功能和特性,随着新版本的发布,将会增加更多的功能:
数据类型
基本类型:整型、数值、字符串、布尔值
结构化类型:日期/时间、数组、范围、UUID
文档类型:JSON/JSONBXML、键值存储(Hstore
几何类型:点、线、圆、多边形
定制化类型:复合类型、自定义类型
数据完整性
UNIQUENOT NULL
主键
外键
排除约束
显式锁、建议锁
并发、性能
索引:B-tree、复合索引、函数索引、部分索引
高级索引:GiSTSP-GistKNN GistGINBRIN、覆盖索引、布隆过滤器 索引
复杂的查询计划器/优化器、Index-Only 扫描、多列统计
事务、嵌套事务(通过保存点实现)
多版本并发控制(MVCC
并行查询以及 B-tree 索引的并行创建
表分区
SQL 标准中定义的 4 种事务隔离级别,包括序列化(Serializable)事务级别
表达式的即时(JIT)编译
15 select distinct postgres_fdw 14 return query
13 11 B-Tree Hash Hash Join
10 B-tree Bitmap Merge join PREPARE EXECUTE
9.6
可靠性、灾难恢复
预写式日志(WAL
复制:异步复制、同步复制、逻辑复制
基于时间点的恢复(PITR)、活动备份
表空间
安全
身份认证:GSSAPISSPILDAPSCRAM-SHA-256SSL 证书等等
强大的访问控制系统
列级与行级安全性
可扩展性
存储函数和存储过程
过程语言:PL/PGSQLPL/PerlPL/Python
外部数据包装器(FDW):通过标准 SQL 接口连接到其他数据库或数据流
大量提供额外功能的扩展:包括 PostGIS
国际化、全文检索
多种方式支持国际字符集,例如通过 ICU 排序规则
全文检索
对于初学者,随着学习的深入可以慢慢了解这些功能的强大之处。如果想要了解每个 PostgreSQL 版本支持的新特
性,可以查看官方的特性矩阵。该页面详细列出了不同版本支持的 各种功能,方便进行比较,同时还可以通过链接
查看每个功能的具体介绍。
PostgreSQL 的另一个强大之处在于它的高度可扩展性。在 PostgreSQL 中,用户可以定义自 己的数据类型、索引类
型、过程语言等等。市场上存在大量基于 PostgreSQL 的数据库产品,例 GreenplumEnterpriseDB
TimescaleDBCitus 等。
如果需要支持,PostgreSQL 拥有一个非常活跃的社区,包括中文社区,通过社区通常总是 可以解决你的各种问题。
另外,许多公司可以提供商业支持。目前比较主流的云服务提供商,亚马逊云,微软云,腾讯云,阿里云、百度云等
都提供了PostgreSQLRDS服务。
PostgreSQL 已经被实践证明,无论是可管理的数据量还是支持的用户并发数,它都具有高 度的可扩展性。在生产环
境中已经存在能够管理 TB 级别数据量的 PostgreSQL 集群,以及能够 管理 PB 级别数据量的专用系统。
PostgreSQL体系结构
逻辑和物理存储结构
PostgreSQL中有一个数据库集簇(Database Cluster)的概念,也有一些地方翻译为数据库集群,它是指由单个
PostgreSQL服务器实例管理的数据库集合,组成数据库集簇的这些数据库使用相同的全局配置文件和监听端口,共
用进程和内存结构。在PostgreSQL中说的某一个数据库实例,通常是指某个数据库集簇。
逻辑存储结构
数据库集簇是数据库对象的集合,在关系数据库理论中,数据库对象是用于存储或引用数据的数据结构,数据
库、表、索引、序列、视图、函数等这些对象,并且在逻辑上彼此分离。
除了数据库外,其他数据库对象(表、索引等)都属于它们各自的数据库,虽然它们隶属同一个数据库集簇,
但也无法直接从集簇中的一个数据库访问该集簇中的另一个数据库中的对象。
一个数据库集簇可以包含多个Database、多个User,每个DatabaseDatabase中的所有对象都有它们的所有
者:User
of 12
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。