PostgreSQL|认识PostgreSQL

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
云数据库 PolarDB MySQL 版,列存表分析加速 8核16GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 【7月更文挑战第1天】

【7月更文挑战第1天】

序言

学习PostgreSQL的初衷

近期由于公司的其他项目在使用PostgreSQL,所以在这个基础上,不得不来学习下PostgreSQL,所学不到之处,还望批评指正。打开PostgreSQL的官网(https://www.postgresql.org/),赧然看到一行标语:

PostgreSQL: The World's Most Advanced Open Source Relational Database

这句话翻译过来就是:PostgreSQL是世界上最先进的开源关系数据库 。一般来说,对于国内的广告法来说,这是不是有点那个啥了?为啥呢?带着这个问题,让我一探究竟。

鉴于PostgreSQL发展趋势

为了弄清楚这个问题,我首先打开了最大强大的数据引擎排名网站查询一二,下面是我在上面的一张截图(截止到2204.4月份,数据库系统排名趋势图,经常做数据的人应该都比较熟悉这个网站)。

从上面的统计表中,不难看出,近几年PostgreSQL一直处于增长状态,尤其是在2017开始,超越MongoDB,增长趋势越发明显。搜索了下其他的新闻,国内的一些公司也大多使用PG了,而且在云端也有很多PostgreSQL的支持。甚至也会出现再一些招聘需求上,也标注了必须要要掌握PostgreSQL(现在学习还来得及,一起学习哇)。今天就开始了解一下PostgreSQL数据库。

对于PostgreSQL的未来趋势看法

当我放大这张图时,从关系型数据层面来看,鉴于SQL Server近期明显的下降趋势,而在PostgreSQL增长趋势明显的情况,预计2026年PostgreSQL将于SQL Server的流行度旗鼓相当,2026年之后可超越SQL Server排列到关系型数据库前三。

Oracle 学习成本有些高,即使是企业也不得不老泪纵横;MySQL自从被Oracle收购之后开源情况不容乐观,再加上国内国产化呼声甚高(国产数据库相关咨询可参考墨天轮:https://www.modb.pro/dbRank),开源对于国内来讲,可谓是如鱼得水;而对于SQL Server来说,国内使用者应该是逐月减少,毕竟SQL Server的时代已经过去。

历史

什么是PostgreSQL

说了那么多,做了那么多的铺垫,我们应该正式认识下这款关系型数据库了。

PostgreSQL是一个强大的开源对象关系数据库系统,它使用和扩展了SQL语言,结合了许多安全存储和扩展最复杂数据工作负载的功能。他比MySQL在协议上面更加自由,PostgreSQL 基于 PostgreSQL License 完全开源,类似于 BSD 与 MIT 开源协议,知道这点我感觉已经足够了。

PostgreSQL的前世今生

PostgreSQL的起源可以追溯到1986年,作为加州大学伯克利分校POSTGRES项目的一部分,并在核心平台上进行了超过35年的积极开发。

下面我将使用表格来呈现PostgreSQL的历史版本信息。

公开版本开始/结束

描述

17.x

2024-02/~

最新开发版本,于2024年2月开始公开

16.x

2023/2028

改进了逻辑复制、pg_stat_io视图(用于I/O指标)

15.x

2022/2027

实现SQL标准的MERGE语句,支持Python3,不在支持Python2。

14.x

2021/2026

添加了SQL标准的SEARCH和CYCLE子句,允许将DISTINCT添加到GROUP BY

13.x

2020/2025

12.x

2019/2024

11.x

2018/2023

10.x

2017/2022

9.x

2010/2021

8.x

2005/2014

7.x

2000/2010

6.x

1997/2004

正式更名为PostgreSQL。

5.x(Postgres95)

1994/1995

Postgres95版本发布。

4.x(v4.2)

1994

1994年发布了v4.2

3.x(v3)

1991

升级为v3

2.x(v2)

1990

升级为v2

1.x(v1)

1989

正式开放版本,为v1。

0.x

1982

Ingres的专有版本,雏形。

PostgreSQL社区支持情况

从PostgreSQL的官网也可以查询到,目前维护的最低版本为v12,v11以及以下版本不在提供支持。后续为了方便学习以及操作,本机器安装了PostgreSQL 14和PostgreSQL 16两个版本。

Aion@xxx ~ $ brew search postgresql
==> Formulae
postgresql@10             postgresql@12             postgresql@14 ✔           postgresql@16 ✔           postgrest
postgresql@11             postgresql@13             postgresql@15             qt-postgresql
==> Casks
navicat-for-postgresql                                            posture-pal
If you meant "postgresql" specifically:
postgresql breaks existing databases on upgrade without human intervention.
See a more specific version to install with:
  brew formulae | grep postgresql@
Aion@xxx ~ $

特性

上面也有讲到过,PostgreSQL是一个强大的开源对象关系数据库系统,所以我能最快想到的便是开源特性。下面是我梳理的一些特性:

  • 免费开源:PostgreSQL是免费且开源,可自由地使用、修改和分发它。它为我们提供了极大的灵活性和自定义空间。
  • 可扩展性:PostgreSQL支持用户通过添加自定义函数、数据类型和索引等方式扩展其功能。其次还支持分区表、流复制和并行查询等高级功能,以满足处理大量数据(一般会用作大规模集群处理大量数据)的需求。
  • ACID兼容性:PostgreSQL支持ACID(原子性、一致性、隔离性和持久性)事务,确保在任何情况下都可以维护数据的完整性和一致性。
  • 并发性:多版本并发控制,也就是我们常说的(MVCC),PostgreSQL使用MVCC来管理并发访问,确保对数据的并发访问不会导致数据损坏或丢失。
  • 可编程性:PostgreSQL支持多种编程语言(PL/pgSQL、Python、Java),使得开发人员可以轻松地创建存储过程、触发器和自定义函数等,主要是集成了很多底层驱动(https://github.com/pgjdbc)。
  • 标准兼容性:PostgreSQL支持大部分SQL标准,并且提供了许多其他现代特性,如复杂查询、外键、触发器、视图和事务完整性等。
  • 安全性高:PostgreSQL提供了多种安全功能,包括用户认证、权限控制、SSL加密等,保护数据的安全性。
  • 兼容性良好:PostgreSQL支持ANSI SQL标准,还支持很多其他数据库系统的语法和特性,这对于迁移其他数据库系统的应用到PostgreSQL。
  • 社区活跃性:PostgreSQL有一个活跃的社区,提供了丰富的文档、教程和支持,可以帮助用户解决各种问题和挑战。

总结

本篇作为一篇学习和了解关于PostgreSQL的文章,也是自己学习的一个开始,后续将陆续编写相关博文。


[引用]

  1. https://db-engines.com/en/ranking_trend
  2. https://www.postgresql.org/
  3. https://en.wikipedia.org/wiki/PostgreSQL#History
  4. https://www.postgresql.org/docs/current/history.html
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
6月前
|
存储 弹性计算 容灾
租用阿里云服务器流程:注册账号、实名认证、领补贴券及购买服务器省钱教程
注册阿里云账号并完成实名认证,个人或企业用户均可免费领取上云补贴券。通过活动中心选择云服务器ECS等产品,自定义配置地域、实例规格、镜像、存储及网络等,结合优惠券享受优惠。支持包年包月或按量付费,轻松实现弹性上云,新手也能快速入门。
397 0
|
8月前
|
Linux 应用服务中间件 nginx
Docker 部署 Rocky Linux 全流程教程
Rocky Linux是CentOS停更后的理想替代,与RHEL完全兼容,支持10年更新。结合Docker部署,可实现环境一致、轻量高效、快速迁移,适用于企业级服务与遗留系统迁移。本文详解从镜像拉取到多场景部署的全流程。
1495 4
|
存储 人工智能 安全
【实测分享】本地AI工具AiPy更新版本v0.1.28
AiPy是一款出色的本地AI工具,2025年5月21日发布v0.1.28版本。它以本地化处理保障数据隐私,新增Trustoken联网搜索、云端私密存储等功能,支持多模型选择如阿里Qwen与腾讯Hunyuan,优化任务处理逻辑,提升效率。操作便捷升级,新老用户均可轻松上手。未来还将推出GUI客户端2.0等新功能,值得期待!(下载地址:https://www.aipyaipy.com/#download)快来体验吧!
【实测分享】本地AI工具AiPy更新版本v0.1.28
|
机器学习/深度学习 数据采集 搜索推荐
利用Python和机器学习构建电影推荐系统
利用Python和机器学习构建电影推荐系统
989 1
|
负载均衡 网络协议 应用服务中间件
Nginx配置以及热升级
Nginx配置以及热升级
394 7
|
机器学习/深度学习 人工智能 自然语言处理
大模型时代下,算法工程师该何去何从?
大模型时代的到来,将算法工程师的职业发展带入了全新的境地。在这个浩瀚的数据海洋中,算法工程师们面临着前所未有的挑战和机遇。不久前,合合信息举办了一场《》的直播活动,智能技术平台事业部副总经理、高级工程师丁凯博士分享了。这段深度探讨不仅让我对算法工程师的未来有了更清晰的认识,也启发了我对自身职业发展的思考。接下来,我将分享这次讨论的精彩内容,希望能够为同学们提供一些有益的启示与思考。
|
关系型数据库 数据库 PostgreSQL
在docker上部署postgresSQL主从
通过以上步骤,我们完成了在Docker环境中部署PostgreSQL主从复制的基本配置。请注意,实际生产环境中还需考虑安全性增强(如SSL加密)、监控、自动故障切换等高级配置。此外,根据具体的业务需求和规模,可能还需要考虑使用更专业的解决方案或工具,如Patroni、PgBouncer等,来进一步提升数据库集群的稳定性和效率。
1239 0
|
Web App开发 自然语言处理 iOS开发
GitHub 中文化插件
这款插件专为GitHub设计,实现菜单栏、标题及按钮等元素的汉化,并提供项目描述的人机翻译,助力新手快速上手。相较于浏览器自带翻译,准确性更高。安装需先配备Tampermonkey或Violentmonkey,随后从GreasyFork安装插件,重启GitHub即现中文界面。
1870 0
|
存储 缓存 监控
使用 Scapy 库编写 ARP 拒绝服务攻击脚本
使用 Scapy 库编写 ARP 拒绝服务攻击脚本
|
Linux
Linux命令之iconv
Linux命令之iconv
462 1