Mysql不行了!!?PostgreSQL成主流!

早在 Stack Overflow  2024 年开发者调查报告中,PostgreSQL 已经取代了 MySQL 成为目前最流行的数据库,而且比例高出 MySQL 8%,差距不小。

图片

对于专业开发者,PostgreSQL 进一步拉开了和 MySQL 的差距,高出 12%!

图片

图片

值得一提的是,PostgreSQL 于 2018 年首次出现在开发人员调查中,当时有 33% 的开发人员表示使用它,而当年最受欢迎的选项是 MySQL,有 59% 的开发人员使用它。六年后,49% 的开发人员使用 PostgreSQL,连续第二年成为最受欢迎的数据库。目前,官方都自称 PostgreSQL 是世界上最先进的开源关系型数据库。

那么!!!

一、什么是 PostgreSQL?

PostgreSQL (通常简称为 “Postgres”) 是一个功能强大、开源的对象-关系型数据库管理系统 (ORDBMS)。它诞生于加州大学伯克利分校,拥有超过35年的活跃开发历史,以其无与伦-比的可靠性、功能健壮性和性能而闻名。

可以把它想象成一个高度可靠且功能极其丰富的“数据仓库”。你不仅可以存储传统的文本、数字等数据,还能处理复杂的查询和存储地理位置、JSON文档等高级数据类型。最重要的是,它是完全免费和开源的。


二、核心功能与特性 (为什么它如此受欢迎?)

PostgreSQL 的强大之处在于它几十年如一日对“正确性”和“功能性”的坚持。

开源与社区驱动 (Open Source & Community-Driven)

完全免费: 你可以免费用于任何目的,无论是个人项目、商业应用还是学术研究,没有昂贵的许可证费用。

活跃的社区: 一个全球化的、充满活力的社区在不断地贡献代码、修复错误、编写文档,确保数据库的持续进步和稳定。

ACID 事务与可靠性 (ACID Compliance & Reliability)

它严格遵守 ACID 原则(原子性、一致性、隔离性、持久性)。这意味着即使在断电、系统崩溃等极端情况下,你的数据也能保持安全和一致,这对于金融、交易等关键业务至关重要。

无与伦比的可扩展性 (Extensibility)

PostgreSQL 的设计哲学就是“可扩展”。你可以自定义数据类型、函数、操作符、索引方法等。

最著名的扩展是 PostGIS,它为 PostgreSQL 增加了强大的地理空间数据支持,使其成为地理信息系统 (GIS) 领域的首选数据库。

丰富的数据类型 (Rich Data Types)

JSON/JSONB: 高效地存储和查询 JSON 文档,性能堪比专门的 NoSQL 数据库。

Array: 可以在一个字段中存储数组。

HSTORE: 键值对存储。

XML: 支持 XML 数据。

UUID: 用于存储通用唯一标识符。

除了常见的 INTEGER, TEXT, VARCHAR, TIMESTAMP 等,它还内置了许多高级数据类型:

并发控制 (Concurrency Control)

它使用 多版本并发控制 (MVCC) 机制。简单来说,读取数据的操作不会阻塞写入数据的操作,反之亦然。这使得 PostgreSQL 在高并发读写场景下表现出色,能支持大量用户同时访问。

强大的 SQL 功能 (Advanced SQL Features)

它遵循 SQL 标准,并支持许多高级 SQL 功能,如窗口函数 (Window Functions)、公共表表达式 (CTEs)、递归查询等,让复杂的数据分析和报表生成变得更简单。

强大的安全特性 (Security)

提供基于角色的访问控制 (Role-Based Access Control)、行级安全策略 (Row-Level Security)、SSL 连接加密等多种安全机制,确保数据访问的安全可控。

附带安装及使用教程!!


三、安装教程(图文教程)

PostgreSQL安装教程:

官方链接:PostgreSQL: The world’s most advanced open source database

图片

编辑

图片

编辑

图片

编辑

图片

编辑

图片

编辑

图片

编辑

图片

编辑

默认端口:5432

图片

编辑

Next…

图片

编辑

waiting … 时间可能略久。。。

图片

编辑

这里可以不勾选!


四、初始化PostgreSQL

打开应用:

图片

编辑

第一次打开会提示设置密码。这个密码是pgAdmin的密码,以后连接服务器的密码需要保存,则会使用pgAdmin的密码对其加密和解密。

这里输入的密码,并不是安装过程中设置的PostgreSQL超级用户postgres的密码。

图片

编辑

ok,连接上了。

图片

六、基本 SQL 命令示例

我们来创建一个简单的“用户表”。

a. 创建数据库 虽然你已经连接到默认的 postgres 数据库,但通常最好为每个应用创建独立的数据库。

SQL

-- 在 psql 提示符中输入 CREATE DATABASE my_app_db; -- \q 退出 psql -- \l 查看所有数据库 -- \c my_app_db 连接到新数据库

b. 创建表 (CREATE TABLE) 连接到 my_app_db 后,我们创建一个 users 表。

SQL

CREATE TABLE users ( id SERIAL PRIMARY KEY, -- 自增主键 username VARCHAR(50) UNIQUE NOT NULL, -- 用户名,唯一且不能为空 email VARCHAR(100) UNIQUE NOT NULL, -- 邮箱,唯一且不能为空 created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP -- 创建时间,默认为当前时间 );
  • SERIAL PRIMARY KEY: 一个会自动增长的整数,用作唯一标识符。
  • VARCHAR(50): 最多包含50个字符的可变长度字符串。
  • UNIQUE NOT NULL: 该列的值必须是唯一的,且不能为空。
  • TIMESTAMP WITH TIME ZONE: 带时区的时间戳。

c. 插入数据 (INSERT) 向 users 表中添加一些记录。

SQL

INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com'), ('bob', 'bob@example.com');

d. 查询数据 (SELECT) 这是最常用的命令,用于从表中检索数据。

SQL

-- 查询所有用户的所有信息 SELECT * FROM users; -- 查询特定用户的信息 SELECT * FROM users WHERE username = 'alice'; -- 只查询用户名和邮箱 SELECT username, email FROM users;

e. 更新数据 (UPDATE) 修改已有记录。

SQL

UPDATE users SET email = 'alice_new@example.com' WHERE username = 'alice';

f. 删除数据 (DELETE) 删除记录。

SQL

DELETE FROM users WHERE username = 'bob';

总结:何时选择 PostgreSQL?

如果你的项目符合以下任何一点,PostgreSQL 都是一个绝佳的选择:

需要高度的数据完整性和可靠性 (例如:金融系统、科学研究数据)。

需要处理复杂的查询和数据分析

需要地理空间数据功能 (使用 PostGIS)。

应用未来可能会变得复杂,需要良好的扩展性

希望避免商业数据库的高昂成本,同时又不想牺牲功能和性能

从苹果、Instagram 到许多初创公司和大型企业,PostgreSQL 驱动着无数的应用。它是一个你学会之后,可以在未来几十年职业生涯中都持续受益的强大工具。

暂无介绍....

延伸阅读:

前端必看:比 js 快几十倍的前端语言来了

当我们聊前端,第一反应肯定是 JavaScript。无论是操作 DOM、调用 API,还是开发复杂的应用,JS 一直是前...

guozhiman
2025年9月9日
一键自动化重装操作系统(Linux / Windows)

官方文档:https://netboot.xyz/docs亮点一键安装 Linux,支持 19 种常见发行版一键安装 W...

guozhiman
2025年9月3日
VMware ESXi 7.0和vCenter Server 7.0安装部署

组件介绍:1、VMware ESXi 7.0VMware ESXi 是 VMware 推出的一种裸金属虚拟化管理程序,可...

guozhiman
2025年7月21日
免费为WordPress网站配置CDN,CloudFlare配置2种WP专属CDN缓存

本篇文章使用免费的Cloudflare为WordPress网站配置CDN,通过不同的CDN设置以适应B2B展示型网站和B...

guozhiman
2025年7月21日
Mysql不行了!!?PostgreSQL成主流!

早在 Stack Overflow  2024 年开发者调查报告中,PostgreSQL 已经取代了 MySQ...

guozhiman
2025年7月16日