PostgreSQL 数据库简介

一、PostgreSQL 简介

PostgreSQL(通常简称为 Postgres)是一种功能强大的开源对象关系型数据库系统。它以其高度的可靠性和灵活性而闻名,支持复杂的查询、数据完整性、可扩展性以及对多种数据类型的处理。
主要特点:

  • 开源和免费:PostgreSQL 是完全开源的,采用 PostgreSQL License,允许用户免费使用、修改和分发。
  • 对象关系型数据库:它不仅支持传统的关系型数据库功能,还支持对象导向的特性,例如表继承和函数重载。
  • 高度可扩展性:支持多种数据类型(包括 JSON、XML、空间数据等),并可通过插件和扩展进一步增强功能。
  • 强大的数据完整性:支持外键、触发器、规则、存储过程等,确保数据的完整性和一致性。
  • 高性能和并发性:支持多版本并发控制(MVCC),能够高效处理高并发的读写操作。
  • 国际化和本地化:支持多种字符集、语言和时区,并提供全文搜索功能。
    社区支持:拥有庞大且活跃的开发者社区,持续更新和优化。

开源地址
PostgreSQL 的官方网站和代码托管地址如下:

  • 官方网站:

https://www.postgresql.org/

  • 代码托管地址:

https://git.postgresql.org/gitweb/

  • PostgreSQL 中文社区:

http://www.postgres.cn/

此外,PostgreSQL 的社区还提供了丰富的文档、教程和工具,帮助开发者和用户更好地使用和管理数据库。

二、为什么选择 PostgreSQL

下是 PostgreSQL 提供的各种功能列表,每个主要版本都在不断增加新功能:

  1. 数据类型:
  • 基础类型:整数、数值、字符串、布尔值
  • 结构化类型:日期/时间、数组、范围/多范围、UUID
  • 文档类型:JSON/JSONB、XML、键值对(Hstore)
  • 几何类型:点、线、圆、多边形
  • 自定义类型:复合类型、自定义类型
  1. 数据完整性:
  • 唯一性约束、非空约束
  • 主键
  • 外键
  • 排他约束
  • 显式锁、建议锁
  1. 并发性、性能:
  • 索引:B-tree、多列索引、表达式索引、部分索引
  • 高级索引:GiST、SP-Gist、KNN GiST、GIN、BRIN、覆盖索引、布隆过滤器
    高级查询规划器/优化器、仅索引扫描、多列统计
  • 事务、嵌套事务(通过保存点)
  • 多版本并发控制(MVCC)
  • 读查询和构建 B-tree 索引的并行化
  • 表分区
  • SQL 标准中定义的所有事务隔离级别,包括可序列化
  • 表达式即时(JIT)编译
  • 可靠性、灾难恢复:
  • 写前日志(WAL)
  • 复制:异步、同步、逻辑
  • 时间点恢复(PITR)、活动备用
  • 表空间
  1. 安全性:
  • 认证:GSSAPI、SSPI、LDAP、SCRAM-SHA-256、证书等
  • 强大的访问控制系统
  • 列和行级安全性
  • 使用证书和其他方法的多因素认证
  1. 可扩展性:
  • 存储函数和过程
  • 过程语言:PL/pgSQL、Perl、Python 和 Tcl。通过扩展还支持其他语言,例如 Java、 JavaScript(V8)、R、Lua 和 Rust
  • SQL/JSON 构造器、查询函数、路径表达式和 JSON_TABLE
  • 外部数据包装器:通过标准 SQL 接口连接到其他数据库或流
  1. 可定制的表存储接口
  • 提供额外功能的众多扩展,包括 PostGIS
  • 国际化、文本搜索:
  • 支持国际字符集,例如通过 ICU 排序规则
  • 不区分大小写和不区分重音的排序规则
  • 全文搜索

三、国内基于PostgreSQL 的数据库

  1. 阿里云 PolarDB for PostgreSQL
    阿里云推出的 PolarDB for PostgreSQL 是一款高性能、高可用的云原生数据库产品。它100%兼容 PostgreSQL,支持存储计算分离架构,具备极致弹性、毫秒级延迟和 HTAP(混合事务/分析处理)能力。此外,PolarDB for PostgreSQL 还高度兼容 Oracle 语法,支持阿里云自研的 Ganos 多维多模时空信息引擎。
  2. 腾讯云 TDSQL for PostgreSQL
    腾讯云的 TDSQL for PostgreSQL 是基于 PostgreSQL 内核优化的企业级数据库产品,继承了 PostgreSQL 的高可靠性、高性能等优点,并针对企业级应用场景进行了优化。
  3. 华为 GaussDB for PostgreSQL
    华为的 GaussDB for PostgreSQL 是基于 PostgreSQL 开发的高性能数据库产品,具备高可靠性和扩展性,适用于多种企业级应用场景。
  4. 人大金仓 KingBase
    人大金仓的 KingBase 是基于 PostgreSQL 9.6 开发的国产数据库,具备高兼容性、高可靠性和高性能等特点。它在 PostgreSQL 的基础上进行了定制和优化,以更好地满足国内用户的需求。
  5. 海量数据 Vastbase G100 数据库:
    Vastbase G100是一款高性能、高兼容性、高安全的企业级关系型数据库。这款数据库在国产化环境下表现尤为出色,在鲲鹏处理器服务器上实现了非常高的事务处理能力(tpmC值),体现了其优秀的性能和稳定性。在开发中也是基于 PostgreSQL 的基础上进行了开发。

四、Postgresql 与Mysql的对比

PostgreSQL 和 MySQL 是两个非常流行的开源关系数据库管理系统,它们各自有着独特的特性和适用场景。以下是两者之间的一些关键对比点:

数据库模型

  • PostgreSQL 是一个对象关系数据库管理系统(ORDBMS),支持复杂的数据类型和继承等面向对象的特性。
  • MySQL 则是一个纯粹的关系型数据库管理系统(RDBMS),尽管它也提供了一些扩展功能,但主要关注于传统的表格数据结构。

标准遵从性

  • PostgreSQL 高度遵循SQL标准,并且在实现上尽可能地接近标准规范。
  • MySQL 为了性能优化,在某些地方偏离了SQL标准,例如对GROUP BY子句中非聚合列的支持。

ACID兼容性

  • PostgreSQL 在所有配置下都完全符合ACID属性。
  • MySQL 只有在使用InnoDB或NDB Cluster存储引擎时才提供完整的ACID事务支持。

并发控制

  • PostgreSQL 使用多版本并发控制(MVCC)来管理并发访问。
  • MySQL 的InnoDB存储引擎也支持MVCC,但在MyISAM等其他存储引擎中并不支持。

性能

  • PostgreSQL 在处理复杂的查询、大数据集以及需要频繁更新的情况下表现更好。
  • MySQL 对于简单的读写操作和高并发的Web应用来说通常提供更好的性能。

扩展性和灵活性

  • PostgreSQL 提供了高度的可扩展性,允许用户定义自己的数据类型、函数和操作符。
  • MySQL 虽然也有一定的扩展能力,但是与PostgreSQL相比,其灵活性较低。

安全性和高级功能

  • PostgreSQL 支持更多的安全特性,如行级安全性(RLS)和更严格的权限控制系统。
  • MySQL 也需要通过额外的配置来实现类似的功能,比如创建视图来模拟行级安全性。

社区和支持

  • PostgreSQL 拥有一个活跃的技术社区,强调技术的深度和稳定性。
  • MySQL 因为其广泛的使用基础而拥有庞大的用户群体和丰富的资源,同时还有Oracle公司的商业支持。

许可证

  • PostgreSQL 发布在类似于BSD/MIT的自由开源许可下,允许更自由的使用和修改。
  • MySQL 社区版采用GPL许可证,对于商业用途可能需要考虑其商业版。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值