简单介绍
PostgreSQL 是一个强大的开源对象关系数据库系统,它使用并扩展了 SQL 语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。PostgreSQL 的起源可以追溯到 1986 年,作为加州大学伯克利分校POSTGRES项目的一部分,在核心平台上已经有 30 多年的积极发展。
PostgreSQL 可以在所有主要操作系统上运行,自 2001 年以来一直符合 ACID,并且具有强大的附加组件。
PostgreSQL 具有高度的可扩展性。例如,您可以定义自己的数据类型,构建自定义函数,甚至无需重新编译数据库即可使用不同的编程语言编写代码!
PostgreSQL符合SQL查询标准,支持SQL标准所需的许多功能,但有的语法或功能略有不同。并且PostgreSQL一直在向着符合SQL标准的一致性的迈进。
支持的功能特点
- 数据类型
- 数字:整形、浮点数、字符串、布尔
- 结构型:日期、数组、范围、UUID
- 文档型:JSON、XML、Key_Value
- 几何型:点、线、圆、多边形
- 自定义:用户可以构建自定义函数类型
- 数据的完整性
- 唯一,非空
- 主键
- 外键
- 约束
- 显式锁、咨询锁
- 性能
- 索引:B 树、多列、表达式、部分
- 高级索引:GiST、SP-Gist、KNN Gist、GIN、BRIN、覆盖索引、布隆过滤器
- 复杂的查询规划器/优化器、仅索引扫描、多列统计
- 事务、嵌套事务(通过保存点)
- 多版本并发控制 (MVCC)
- 读取查询的并行化和构建 B 树索引
- 表分区
- SQL 标准中定义的所有事务隔离级别,包括 Serializable
- 表达式的即时 (JIT) 编译
- 可靠性
- 预写日志 (WAL)
- 复制:异步、同步、逻辑
- 时间点恢复 (PITR),活动备用
- 表空间
- 安全
- 身份验证:GSSAPI、SSPI、LDAP、SCRAM-SHA-256、证书等
- 强大的访问控制系统
- 列级和行级安全
- 使用证书和其他方法进行多因素身份验证
- 可扩展性
- 存储函数和过程
- 过程语言:PL/PGSQL、Perl、Python(等等)
- SQL/JSON 路径表达式
- 外部数据包装器:使用标准 SQL 接口连接到其他数据库或流
- 可定制的表格存储界面
- 许多提供附加功能的扩展,包括 PostGIS
- 文本搜索
- 支持国际字符集,例如通过 ICU 排序规则
- 不区分大小写和不区分重音的排序规则
- 全文检索