PostgresSQL 概述
Posted 滴水穿石不是靠力,而是因为不舍昼夜。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgresSQL 概述相关的知识,希望对你有一定的参考价值。
PostgreSQL 简介
PostgreSQL 是世界上最先进的开源对象-关系型数据库管理系统(ORDBMS),简称Postgres。它最初基于加利福尼亚大学伯克利分校开发的POSTGRES, Version 4.2,至今已有30多年的历史。
首先说开源,PostgreSQL是一个免费并且开源的软件。它的代码基于PostgreSQL许可发行,这是一个类似于BSD或者MIT的自由开放源码许可协议。用户可以基于任何目的使用、修改和发布PostgreSQL,甚至直接包装一下拿出去卖钱都没问题,唯一的要求就是保留它的版权声明。这一点相对于MySQL社区版的GPL协议友好许多。
再说它的先进,PostgreSQL使用C语言进行开发,最初是为了UNIX类平台而设计。不过,PostgreSQL现在可以支持各种主流的平台,例如Linux、BSD、AIX、HP-UX、Mac OS X、Solaris以及Windows等等。PostgreSQL遵循事务的ACID原则,高度兼容SQL标准,2021年9月发布的PostgreSQL14至少符合SQL: 2016核心一致性的179项强制功能中的170项。目前,还没有任何关系型数据库产品完全符合该标准。
以下是PostgreSQL所支持的主要功能和特性,随着新版本的发布,将会增加更多的功能:
数据类型
- 基本类型:整型、数值、字符串、布尔值
- 结构化类型:日期/时间、数组、范围、UUID
- 文档类型:JSON/JSONB、XML、键值存储(Hstore)
- 几何类型:点、线、圆、多边形o定制化类型:复合类型、自定义类型
数据完整性
- UNIQUE、NOT NULL
- 主键
- 外键
- 排除约束
- 显式锁、建议锁
- 索引:B-tree、复合索引、函数索引、部分索引
- 高级索引:GiST、SP-Gist、KNN Gist、GIN、BRIN、覆盖索引、布隆过滤器索引
- 复杂的查询计划器/优化器、Index-Only扫描、多列统计
- 事务、嵌套事务(通过保存点实现)
- 多版本并发控制(MVCC)
- 并行查询以及B-tree索引的并行创建
- SQL标准中定义的4种事务隔离级别,包括序列化(Serializable)事务级别
- 表达式的即时(JIT)编译
- 预写式日志(WAL)
- 复制:异步复制、同步复制、逻辑复制
- 基于时间点的恢复(PITR)、活动备份
- 表空间
- 身份认证
- GSSAPI、SSPI、LDAP、SCRAM-SHA-256、SSL证书等等
- 强大的访问控制系统
- 列级与行级安全性
可扩展性
- 存储函数和存储过程
- 过程语言:PL/PGSQL、PL/Perl、PL/Python等
- 外部数据包装器(FDW):通过标准SQL接口连接到其他数据库或数据流
- 大量提供额外功能的扩展:包括PostGIS
对于初学者,随着学习的深入可以慢慢了解这些功能的强大之处。如果想要了解每个PostgreSQL版本支持的新特性,可以查看官方的特性矩阵。该页面详细列出了不同版本支持的各种功能,方便进行比较,同时还可以通过链接查看每个功能的具体介绍。
PostgreSQL的另一个强大之处在于它的高度可扩展性。在PostgreSQL中,用户可以定义自己的数据类型、索引类型、过程语言等等。市场上存在大量基于PostgreSQL的数据库产品,例如Greenplum、EnterpriseDB、TimescaleDB、Citus等。
如果需要支持,PostgreSQL拥有一个非常活跃的社区,包括中文社区,通过社区通常总是可以解决你的各种问题。另外,许多公司可以提供商业支持。
PostgreSQL已经被实践证明,无论是可管理的数据量还是支持的用户并发数,它都具有高度的可扩展性。在生产环境中已经存在能够管理TB级别数据量的PostgreSQL集群,以及能够管理PB级别数据量的专用系统。
以上是关于PostgresSQL 概述的主要内容,如果未能解决你的问题,请参考以下文章