postgreSQL


postgreSQL 简介

PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。

PostgreSQL是一个强大的开源对象关系数据库系统,它使用并扩展了SQL语言,并结合了许多功能,可以安全地存储和扩展最复杂的数据工作负载。PostgreSQL的起源可以追溯到1986年,是加州大学伯克利分校POSTGRES项目的一部分,在核心平台上有超过35年的积极开发。

PostgreSQL以其经验证的体系结构、可靠性、数据完整性、强大的功能集、可扩展性以及软件背后的开源社区致力于始终如一地提供高性能和创新的解决方案而赢得了良好的声誉。PostgreSQL运行在所有主要的操作系统上,自2001年以来一直与ACID兼容,并具有强大的附加组件,如流行的PostGIS地理空间数据库扩展程序。毫不奇怪,PostgreSQL已经成为许多人和组织选择的开源关系数据库。

开始使用PostgreSQL从来没有这么容易过——选择一个你想要构建的项目,让PostgreSQL安全可靠地存储你的数据

postgreSQL

为什么要使用PostgreSQL

PostgreSQL提供了许多功能,旨在帮助开发人员构建应用程序,管理员保护数据完整性和构建容错环境,并帮助您管理数据,无论数据集大小。除了免费和开源之外,PostgreSQL还具有高度的可扩展性。例如,您可以定义自己的数据类型,构建自定义函数,甚至不用重新编译数据库就可以用不同的编程语言编写代码!

PostgreSQL试图遵循SQL标准,在这种标准中,这种一致性不会与传统功能相矛盾,也不会导致糟糕的体系结构决策。支持SQL标准所需的许多功能,尽管有时语法或功能略有不同。随着时间的推移,可能会朝着一致性的方向进一步发展。截至2023年9月发布的第16版,PostgreSQL至少符合SQL的179个强制性特性中的170个:2023核心一致性。截至本文撰写之时,没有一个关系数据库完全符合此标准。

PostgreSQL功能列表

数据类型
基本类型: Integer, Numeric, String, Boolean
结构化: Date/Time, Array, Range / Multirange, UUID
文档: JSON/JSONB, XML, Key-value (Hstore)
几何体:Point, Line, Circle, Polygon
自定义:Composite, Custom Types
数据完整性
唯一,不为NULL
主键
外键
排除限制
显式锁、咨询锁
并发性、性能
索引:B 树、多列、表达式、部分
高级索引:GiST、SP-Gist、KNN Gist、GIN、BRIN、覆盖索引、Bloom 过滤器
先进的查询规划器/优化器、仅索引扫描、多列统计信息
事务、嵌套事务(通过保存点)
多版本并发控制 (MVCC)
读取查询的并行化和构建 B 树索引
表分区
SQL 标准中定义的所有事务隔离级别,包括 Serializable
表达式的实时 (JIT) 编译
可靠性、灾难恢复
预写日志记录 (WAL)
复制:异步、同步、逻辑
时间点恢复 (PITR)、活动备用
表空间
安全
身份验证:GSSAPI、SSPI、LDAP、SCRAM-SHA-256、证书等
强大的门禁系统
列级和行级安全性
使用证书和其他方法进行多因素身份验证
扩展
存储函数和过程
过程语言:PL/pgSQL、Perl、Python 和 Tcl。还有其他语言可以通过扩展获得,例如 Java、JavaScript (V8)、R、Lua 和 Rust
SQL/JSON 构造函数和路径表达式
外部数据包装器:使用标准 SQL 接口连接到其他数据库或流
可自定义的表存储界面
许多提供附加功能的扩展,包括 PostGIS
国际化、文本搜索
支持国际字符集,例如通过 ICU 排序规则
不区分大小写和不区分重音的排序规则
全文搜索
您可以在 PostgreSQL 文档中发现更多功能。此外,PostgreSQL 具有高度可扩展性:许多功能(例如索引)都定义了 API,因此您可以使用 PostgreSQL 进行构建以解决您的挑战。

PostgreSQL已被证明具有高度的可扩展性,无论是在它可以管理的数据量上,还是在它可以容纳的并发用户数量上。生产环境中有管理数 TB 数据的活动 PostgreSQL 集群,以及管理 PB 级数据的专用系统

PostgreSQL 特征

PostgreSQL 是一个功能强大的开源对象关系数据库系统,拥有超过 35 年的积极开发经验 这为其在可靠性、功能稳健性和性能方面赢得了良好的声誉。

通过官方文档可以找到大量描述如何安装和使用 PostgreSQL 的信息。 开源社区提供了许多熟悉 PostgreSQL 的有用场所, 了解其工作原理,并寻找职业机会。了解更多信息 如何与社区互动。
函数:通过函数,可以在数据库服务器端执行指令程序。

索引:用户可以自定义索引方法,或使用内置的 B 树,哈希表与 GiST 索引。

触发器:触发器是由SQL语句查询所触发的事件。如:一个INSERT语句可能触发一个检查数据完整性的触发器。触发器通常由INSERT或UPDATE语句触发。

多版本并发控制:PostgreSQL使用多版本并发控制(MVCC,Multiversion concurrency control)系统进行并发控制,该系统向每个用户提供了一个数据库的"快照",用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。

规则:规则(RULE)允许一个查询能被重写,通常用来实现对视图(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、删除(DELETE)。

数据类型:包括文本、任意精度的数值数组、JSON 数据、枚举类型、XML 数据等。

全文检索:通过 Tsearch2 或 OpenFTS,8.3版本中内嵌 Tsearch2。

NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 数据库的外部数据包装器。

数据仓库:能平滑迁移至同属 PostgreSQL 生态的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 进行 ETL。

相关资源

查看最新版:https://github.com/postgres-cn/pgdoc-cn/releases

PostgreSQL官网:https://www.postgresql.org/