【PostgreSQL】PostgreSQL详细介绍

关于PostgreSQL安装详细步骤请参考:【PostgreSQL】Windows安装PostgreSQL数据库图文详细教程

一、什么是PostgreSQL?

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

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

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

二、为什么要使用PostgreSQL?

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

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

三、PostgreSQL功能列表

以下是PostgreSQL中各种功能的详尽列表,每个主要版本都会添加更多功能:

3.1 数据类型

  • 基本类型: Integer, Numeric, String, Boolean
  • 结构化: Date/Time, Array, Range / Multirange, UUID
  • 文档: JSON/JSONB, XML, Key-value (Hstore)
  • 几何体:Point, Line, Circle, Polygon
  • 自定义:Composite, Custom Types

3.2 数据完整性

  • 唯一,不为NULL
  • 主键
  • 外键
  • 排除限制
  • 显式锁、咨询锁

3.3 并发,性能

  • 索引:B-树、多列、表达式、分部
  • 高级索引:GiST,SP GiST,KNN GiST,GIN,BRIN,覆盖索引,Bloom过滤器
  • 复杂的查询规划器/优化器、仅索引扫描、多列统计信息
  • 事务,嵌套事务(通过保存点)
  • 多版本并发控制(MVCC)
  • 读取查询的并行化与B树索引的构建
  • 表分割
  • SQL标准中定义的所有事务隔离级别,包括Serializable
  • 表达式的实时(JIT)编译

3.4 可靠性、灾难恢复

  • 预写日志记录(WAL)
  • 复制:异步、同步、逻辑
  • 时间点恢复(PITR),活动备用
  • 表空间

3.5 安全

  • 身份验证:GSSAPI、SSPI、LDAP、SCRAM-SHA-256、证书等
  • 坚固访问控制系统
  • 列和行级别的安全性
  • 使用证书的多因素身份验证和一种附加方法

3.6 可扩展性

  • 存储的函数和过程
  • 过程语言:PL/pgSQL、Perl、Python和Tcl。通过扩展还可以使用其他语言,例如Java、JavaScript(V8)、R、Lua和Rust
  • SQL/JON-构造函数和路径表达式
  • 外部数据包装器:使用标准SQL接口连接到其他数据库或流
  • 可自定义的表格存储界面
  • 许多提供附加功能的扩展,包括PostGIS

3.7 国际化,文本搜索

  • 支持国际字符集,例如通过ICU排序
  • 不区分大小写和不区分重音的排序规则
  • 全文搜索

当然你也可以在PostgreSQL文档中发现更多功能。此外,PostgreSQL具有高度的可扩展性:许多功能,如索引,都定义了API,因此您可以使用PostgreSQL进行构建以解决您的挑战。

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

四、参考资料

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

本文完结!