PostgreSQL 介绍
PostgreSQL是一个强大的开源对象关系数据库系统,它使用并扩展了SQL语言,并结合了许多特性来安全存储和扩展最复杂的数据工作负载。
PostgreSQL
PostgreSQL 起源于加州大学伯克利分校计算机系,最初设想于 1986 年,当时叫做 Berkley Postgres Project。1995 年,开发者 Andrew Yu 和 Jolly Chen 在 Postgres 中添加了一个 SQL 翻译程序,并在开源社区发布,称为 Postgres95。1996 年,开发者再次对 Postgres95 做了较大的改动,并将其作为 PostgresSQL 6.0 版正式发布。
PostgreSQL是一个强大的开源对象关系数据库系统,它使用并扩展了SQL语言,并结合了许多特性来安全存储和扩展最复杂的数据工作负载。凭借其经过验证的架构、可靠性、数据完整性、健壮的特性集、可扩展性,以及开源社区对该软件持续交付性能和创新解决方案的奉献,赢得了强大的声誉。PostgreSQL可以运行在所有主流的操作系统上,自2001年起就与acid兼容,并且拥有强大的插件,比如流行的PostGIS地理空间数据库扩展器。自从 MySQL 被 Oracle 收购以后,PostgreSQL 逐渐成为了开源关系型数据库的首选。
特性
数据类型
- 基本类型:Integer、Numeric、String、Boolean
- 结构类型:Date/Time、Array、Range / Multirange、UUID
- 文档类型:JSON/JSONB、XML、Key-value (Hstore)
- 几何类型:Point、Line、Circle、Polygon
- 自定义类型:Composite、Custom Types
完整性约束
- 数据唯一约束,非空约束
- 主键约束
- 外键约束
- 排除约束
- 显式锁定、咨询锁定
并发性、性能
- 索引:B树,组合索引,表达式索引,局部索引
- 高级索引:GiST, SP-Gist, KNN GiST, GIN, BRIN,覆盖索引,Bloom过滤器
- 复杂的查询规划/优化器、仅索引扫描、多列统计信息
- 事务、嵌套事务
- 多版本并发控制
- 并行读取查询和构建B树索引
- 表分区
- SQL标准中定义的所有事务隔离级别,包括Serializable
- 表达式的即时(JIT)编译
可靠性
- 预写日志(WAL)
- 数据复制(异步,同步,逻辑):对于 Web 应用来说,复制的特性很重要,PostgreSQL 可以做到同步,异步,半同步复制。PostgreSQL 的复制基于 WAL,可以做到同步复制。同时 PostgreSQL 还提供 stream 复制。
- 时间点恢复
- 主动备用
- 表空间
安全性
- 身份验证方式:GSSAPI、SSPI、LDAP、SCRAM-SHA-256、证书等。
- 健壮的访问控制系统
- 列级和行级安全
- 使用证书和附加方法的多因素身份验证
可扩展性
-
存储函数和过程
-
过程语言:PL/PGSQL、Perl、Python(以及更多)
-
SQL / JSON路径表达式
-
外部数据包装器:使用标准SQL接口连接到其他数据库或流
-
可定制的表存储接口
-
许多扩展提供额外的功能,包括PostGIS
国际化、文本搜索
-
支持国际字符集,例如通过ICU排序
-
不区分大小写和不区分重音的排序规则
-
全文搜索
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)