Code Ease Code Ease
  • 个人博客网站 (opens new window)
  • 好用的工具网站 (opens new window)
  • Java核心基础
  • 框架的艺术
  • 分布式与微服务
  • 开发经验大全
  • 设计模式
  • 版本新特性
数据库系列
大数据+AI
  • xxl-job
运维与Linux
  • 基于SpringBoot和BootStrap的论坛网址
  • 基于VuePress的个人博客网站
  • 基于SpringBoot开发的小功能
  • 做一个自己的IDEA插件
程序人生
关于我
  • 分类
  • 标签
  • 归档

神秘的鱼仔

你会累是因为你在走上坡路
  • 个人博客网站 (opens new window)
  • 好用的工具网站 (opens new window)
  • Java核心基础
  • 框架的艺术
  • 分布式与微服务
  • 开发经验大全
  • 设计模式
  • 版本新特性
数据库系列
大数据+AI
  • xxl-job
运维与Linux
  • 基于SpringBoot和BootStrap的论坛网址
  • 基于VuePress的个人博客网站
  • 基于SpringBoot开发的小功能
  • 做一个自己的IDEA插件
程序人生
关于我
  • 分类
  • 标签
  • 归档
服务器
  • MySQL

  • Redis

  • MongoDB

  • PostgreSQL

    • PostgreSQL为什么值得学习
      • 前言
      • PostgreSQL简介
      • PostgreSQL和MySQL的区别
      • 总结
    • PostgreSQL的离线安装及问题解决
    • PostgreSQL中的数据库操作
    • PostgreSQL中如何建好一张表
  • 数据库系列
  • PostgreSQL
CodeEase
2025-10-16
目录

PostgreSQL为什么值得学习

作者:鱼仔
博客首页: codeease.top (opens new window)
公众号:神秘的鱼仔

# 前言

stackoverflow 每年会进行一次年度开发者调查,截止我写这篇博客的时间:2025年7月1日,最新的开发者年度报告是2024年,报告地址如下:

https://survey.stackoverflow.co/2024/ (opens new window)

在这篇报告中,有一块区域统计了最受欢迎的数据库,其中PostgreSQL以48.7%的票数超越了MySQL,连续第二年成为最受欢迎的数据库。

1196X828/image.png

我用PostgreSQL的契机是项目中需要用到向量数据库,而PostgreSQL通过一个vector插件就可以支持向量化数据的功能,于是就是PostgreSQL打上交道了。

这个系列的文章会基于目前最新的PostgreSQL 17版本,带你从入门到精通地学习到PostgreSQL,本系列博客的内容会参考官方的文档,并结合笔者自己的经验给出。地址如下:

https://www.postgresql.org/docs/17/intro-whatis.html (opens new window)

第一章我们就来聊聊PostgreSQL是什么,以及他能做哪些事情。

# PostgreSQL简介

这是PostgreSQL官网的第一句话:世界上最先进的开源关系型数据库

2380X594/image.png

一般的项目如果这样说的话肯定被怼了,但PostgreSQL确实有这个实力。通过theirstack官网的统计,截止2025年8月6号,已经有超过14万家公司在使用PostgreSQL

2612X454/image.png

国外的像苹果、亚马逊等大企业都是PostgreSQL的使用者,国内使用PostgreSQL的公司也很多,比如阿里巴巴、腾讯、高德地图、百度地图等等都在部分领域将PostgreSQL作为数据库的选择。

PostgreSQL的开源协议十分宽松,总结下来就是:

1、允许免费使用、修改、分发、商用;

2、无需开源衍生作品(不具备“传染性”);

3、仅需保留原始版权声明和许可条款。

完整协议可以看官网:https://www.postgresql.org/about/licence/ (opens new window)

其中第二点,很明显指向了MySQL,MySQL使用的开源协议是GPL,意味着如果基于MySQL改动了代码,你的所有代码也必须开源,这也是现在很多公司选择PostgreSQL的原因。

# PostgreSQL和MySQL的区别

下面这张图是用GPT生成后修改得到,基本上把两者的特性都讲到了。

特性 PostgreSQL MySQL
类型 面向对象的关系型数据库(ORDBMS) 传统关系型数据库(RDBMS)
复杂查询 支持复杂查询、窗口函数、CTE、递归查询等 基本支持,但复杂查询性能相对较弱
JSON 支持 完善(支持 JSONB 索引、查询) 基础支持(较弱的 JSON 查询能力)
事务处理 强,支持完整的 ACID 特性 取决于存储引擎(如 InnoDB 支持 ACID)
并发控制 多版本并发控制(MVCC) InnoDB 实现 MVCC,细节不同
数据类型 类型丰富(如 UUID, Array, Range, JSONB) 类型有限
扩展性 插件丰富,可自定义类型、函数、索引 插件相对较少
标准 SQL 支持 更接近 SQL 标准(ANSI SQL) 有部分 MySQL 自己的语法扩展
性能优化 更适合复杂分析型查询 更适合读密集型、简单 OLTP 场景
复制功能 原生支持逻辑复制、流复制 支持主从复制、GTID、组复制(更成熟)
社区与生态 强大、学术支持多 企业广泛使用,生态工具极多
安装部署 相对复杂 简单、轻量
插件系统 高度可扩展(如 TimescaleDB、PostGIS) 插件限制多

PostgreSQL相比MySQL有几个比较大的不同点,首先它是object-relational数据库,对象关系型数据库,而MySQL是关系型数据库。对象关系型数据库引入了对象的概念,会有继承、自定义类型的特性,这个后面都会讲到。

PostgreSQL支持更多的复杂查询函数,适合有更多复杂查询的场景;而MySQL适合读密集型的场景。

PostgreSQL可以很方便地扩展插件,比如我现在在用的向量数据库就是一个PGSQL的插件。

# 总结

本篇博客主要介绍了PostgreSQL是什么,以及它和MySQL之间的区别,接下来开始都将是实践内容。

参考文档:

https://www.freecodecamp.org/chinese/news/2021-postgres-1/ (opens new window)

https://www.postgresql.org/docs/17/intro-whatis.html (opens new window)

https://survey.stackoverflow.co/2024/ (opens new window)

https://www.postgresql.org/ (opens new window)

MongoDB快速上手,聊聊这款火了一阵又销声匿迹的非关系型数据库
PostgreSQL的离线安装及问题解决

← MongoDB快速上手,聊聊这款火了一阵又销声匿迹的非关系型数据库 PostgreSQL的离线安装及问题解决→

最近更新
01
PostgreSQL中如何建好一张表
10-16
02
PostgreSQL中的数据库操作
10-16
03
PostgreSQL的离线安装及问题解决
10-16
更多文章>
Theme by Vdoing | Copyright © 2023-2025 备案图标 浙公网安备33021202002405 | 浙ICP备2023040452号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式