最近在研究各种 LLM 相关项目时发现一个有趣的现象:绝大多数项目都选择了 PostgreSQL 作为默认数据库,比如:
这让我有点困惑,因为:
而且我在使用 cursor 或者 claude code 进行编码时,他们也是默认推荐使用 postgreSQL 来搭建数据库,感觉应该是社区/生态的影响?
真心求教哈,不是挑起数据库之争😄
1
kaliawngV2 1 天前 ![]() 公司用 mysql (背这么多八股文,不用感觉很亏),自己项目用 postgresql (爽)
|
2
Erona 1 天前 ![]() pg 全方面碾压 MySQL, 用 MySQL 才奇怪吧
|
![]() |
3
donaldturinglee 23 小时 47 分钟前 via Android ![]() 主要是开源,日常 crud 其实用哪个数据库都差不多的
|
![]() |
4
wtks1 23 小时 44 分钟前 ![]() 可能是规模效应,用的人越多就有越多的资料可供查阅,这反过来又促进了新的项目来用这个
|
5
ZeroClover 23 小时 43 分钟前 ![]() 因为专门的向量数据库也不见得能打得过 pg
而且 MySQL 用户基础更大纯属国内用户的幻觉,pgsql 的用户量早就已经超了 MySQL 了,国内的各种自主可控信创库很多也是基于 pgsql 的 |
![]() |
6
maix27 22 小时 8 分钟前 ![]() 因为国外一直是这样的,你的例子举的很不恰当。换到国内呢?
|
![]() |
7
Dlad 21 小时 38 分钟前 ![]() mysql 实在用习惯了,被收购后一直用 mariadb
用法非常古板,数据库机制一概不用(仅用主键自增,btree 索引),其他逻辑一概放在代码里。 至高的效率,完全的控制,为弥补天生缺陷发展多年的全面解决方案 —— 感觉是坚守 mysql / mariadb 不多的理由。 只能说够用吧。 |
![]() |
8
Dlad 21 小时 4 分钟前
gemin 详细比较了一下 pgsql 和 mariadb —— 即使在不依赖数据库特性的构建原则下,也是较优解——决定把手上项目迁移一下。
十几年来做过很多次横评,不知在哪个时间点 pgsql 超过了 mysql…… |
![]() |
13
maix27 20 小时 41 分钟前
@Dlad
哟,您个大学生要展示自己的逻辑啦? 想和 pgsql 比数据库特性是吧?学霸和学渣比较说,我们不比学霸厉害的英语,咱们比我学渣的强项体育,咋?体育被秒成渣拿个较优解也乐呵呢?你多个对象(大于 2 )一起比较拿个较优解才有说服力啊,就俩对象比较,去掉学霸的强项还拿个第二装什么? 不要给固执死板洗白,不要急着给别人扣帽子。 |
![]() |
14
hash 20 小时 34 分钟前 ![]() 最大的问题是国内这种师傅带徒弟的结构下,都只会用 MySQL,甚至觉得 MySQL 那些怪胎特点才是标准
你让他们换数据库?你知道国内有多少低能儿认为"程序员"就是"Java+MySQL"么? |
![]() |
15
xshell 19 小时 33 分钟前 ![]() postgres 火起来也与 MySQL 挤牙膏发版方式有关(历史原因)
|
![]() |
16
satoru 19 小时 23 分钟前 ![]() 只是这两年吗?像 Django 之类的流行框架都默认用 PG 多少年了 ……
|
![]() |
17
areless 19 小时 12 分钟前 via Android ![]() pg 只是在关系数据库领域碾压 mysql 而已。在时序数据库甚至都不如 MongoDB ,跟更专业的时序数据库完全没法比。在向量领域,qdrant 这种比他强一百倍,人家可以多层向量 gpu 运算任意检索。在图数据库领域或者全文本检索领域,pg 也只是小学生级别的。
|
![]() |
18
qxmqh 19 小时 6 分钟前 ![]() PostgreSQL 在一些物联网平台相关的使用场景里面,占绝大多数。另外国内的 很多“自研”的数据库 都是基于 pg 的某个版本来二次开发的。比如华为的 openGauss ,GaussDB 的产品序列。还有人大金仓 Kingbase ,亚信 倍健 等等。
|
19
neutrino 19 小时 3 分钟前 via Android ![]() @ZeroClover 有屁股超过我的数据吗,看了几个数据都是我的占有量比较多
|
![]() |
20
Geon97 19 小时 2 分钟前 ![]() 早在 22 的时候 pgsql 热度就上来了
|
![]() |
21
wu67 18 小时 51 分钟前 ![]() 可以直接存数组, 就很快乐
|
22
kzfile 18 小时 51 分钟前 ![]() 我工作这么多年,还没用过 mysql ,从来都是 pg
|
![]() |
23
wangtian2020 18 小时 50 分钟前 ![]() 确实 pgsql 更现代化,应用场景更多。数据库又不是编程语言项目选型后难以的改变的
|
24
zhengfan2016 18 小时 50 分钟前 ![]() |
![]() |
25
wowawesome 18 小时 47 分钟前 ![]() 我感觉是换个方向卷
|
26
ymmud 18 小时 47 分钟前 ![]() 小型项目基本就只需要 pg 一把梭
|
27
pulutom40 18 小时 46 分钟前 via iPhone ![]() 比性能,mysql 提鞋都不配
比功能,mysql 提鞋都不配 mysql 是所有你能叫出名字的数据库中,性能最差的,用得多仅限于国内互联网公司,但凡换个定语,都没人用 mysql |
![]() |
28
onice 18 小时 39 分钟前 ![]() ORM 框架已经屏蔽了数据库操作,感觉 mysql 还是 pgsql 没区别。但我受国内八股文影响,对 mysql 了解要比 pgsql 了解得多得多。
|
![]() |
29
lancelock 18 小时 37 分钟前 ![]() 你这第三点逻辑就挺奇怪的,mysql 完全够用所以用 mysql?难道 pg 就不够用吗。一般两个产品一个免费一个收费,免费的完全够用所以用免费的倒是符合逻辑,然而 pg 也是免费的啊
|
![]() |
30
WasteNya 18 小时 37 分钟前 via Android ![]() 原来你是 java 后端啊,那没事了
|
![]() |
31
listen2wind 18 小时 31 分钟前 ![]() 能完成项目的都是好工具
|
32
tabc2tgacd 18 小时 31 分钟前 ![]() 公司项目依然是 mysql 。 我自己近几年做的,都用 pgsql 了。其实也都差不多,我选 pg 主要是跟风。倒是没用到什么特别好的优点。
|
![]() |
33
defunct9 18 小时 30 分钟前 ![]() postgres 的权限模式 schema ,PUBLIC 非常诡谲,没有 mysql 好用。dump 和 restore 也都坑。
|
35
gitlight 18 小时 29 分钟前 ![]() 一般公司的项目摸不到 pg 和 MySQL 的单表性能上线。我选它主要是因为 PostGIS
|
36
spritecn 18 小时 27 分钟前 ![]() 运维习惯了用 mysql,出了奇奇怪怪的问题知道怎么解
|
37
rocmax 18 小时 25 分钟前 via Android ![]() 开发日历应用,PostgreSQL range type 刚需,还做了 drizzle 的适配。
|
38
nicaiwss 18 小时 20 分钟前 via iPhone ![]() 看了评测 mysql 全面落后,没有一样拿的出手
|
40
salmon5 18 小时 16 分钟前 ![]() DBA 一招鲜( mysql ),吃遍天
还搞个锤子的 pgsql |
41
salmon5 18 小时 15 分钟前 ![]() 这和程序员 Java8 一样,可以用到退休
|
42
abolast 18 小时 13 分钟前 ![]() @defunct9 太诡异了,特别是某些后端不想学习然后用 mysql 思维来迁移使用,这种情况下 schema 和 PUBLIC 太诡异了。所以说还是得详细学习后,遵循最佳实践来使用,简直就是万能的数据库了,自己写的小项目用 pg 爽歪歪,可以说是下一代的数据库了,我一个运维如是说
|
![]() |
43
runzhliu 18 小时 3 分钟前 ![]() Harbor 也是 pg ,说要加 mysql ,现在都还没弄完
|
![]() |
44
irrigate2554 18 小时 0 分钟前 ![]() 专业的向量数据库也不一定打得过 PG (独立向量数据库同步业务数据还麻烦),专业的文档数据库也不一定打得过 PG jsonb ,专业的 kv 专业的 mq 都不一定有 PG 好用。PG 真的厉害
|
45
dcsuibian 17 小时 57 分钟前 ![]() 如果一个东西真的好用,他必然是解决了某些痛点的
一开始可能只是开发人员自己在用,接着推广了下,身边的人也开始尝试,发现不错以后再向身边的人推荐。 开源应用的话,推广的速度就更快。比如有些专业研究数据库的大牛,了解 MySQL 的缺陷,有痛点、有需求,发现新出的东西不错就用了下来。那大牛用了,自然也会有人跟着用。 总的来说一个东西真的好用的话,就是会慢慢推广开来的 |
46
Huelse 17 小时 55 分钟前 ![]() 很简单,因为 pg 性能更优,设计更前沿,是比较优质的开源数据库项目
而 mysql 自从被收购后更新几乎处于停滞状态,几个老 bug 数年没修,指不定啥时候就淘汰了 |
47
apkapb 17 小时 50 分钟前 ![]() 我是从什么时候觉得 pg 比 mysql 好的??
在用 umami 自建统计的时候,使用 mysql 版本,统计不了几天,页面打开就非常慢,换成 pg 没一点问题。。。。 |
![]() |
48
yh7gdiaYW 17 小时 38 分钟前 ![]() 第 2 点,为什么不直接用专门的向量数据库
最近刚好做了一轮选型,其实功能上都差不多,pgvector 也不是任何主流 rag&workflow&agent 框架的默认向量库。但我最后还是选了 pg ,因为数据库这个领域如果要上生产环境,真的不太敢信赖这些新兴的向量数据库 |
49
Fisherder 17 小时 38 分钟前 via Android ![]() 千疮百孔的世界上最流行的数据库 [让编程再次伟大#番外 1] UP 主: 原子能 - https://www.bilibili.com/video/BV1BAABeKEqp
有些数据库是蠢,有些是坏,它是又蠢又坏 [让编程再次伟大#番外 2] UP 主: 原子能 - https://www.bilibili.com/video/BV1M1Koz6EW1 可能这些能解答你的问题? |
![]() |
51
phithon 17 小时 36 分钟前 ![]() 除了公司生态强制要求以外,想不到有什么场景应该用 mysql 。。。
|
![]() |
52
NightFlame 17 小时 35 分钟前 ![]() mysql 用习惯了,下个项目用 pg 试试
|
![]() |
53
crocoBaby 17 小时 32 分钟前 ![]() 信息蚕房吧,我觉得是 mongodb 越来越火
|
![]() |
54
ratazzi 17 小时 31 分钟前 ![]() PostgreSQL 有两点我很喜欢,也很实用:
1. 没有那么多糟心的 utf8 选择 2. varchar 不用限制长度,不会某天因为 bug 或者各种原因发现数据被截断还要去修正数据 |
![]() |
55
lawrencexu 17 小时 27 分钟前 ![]() 也有比较独特的,比如 uber 这种在 mysql 和 pg 之间反复横跳的。其实还是看工程师的技术支持程度,至少在国内熟悉 mysql 的 dba 还是更好找一些,毕竟一众互联网公司都用 mysql ,各种问题解决方案的坑都填的差不多了。
|
![]() |
56
defunct9 17 小时 26 分钟前 ![]() mongodb 也是拉跨,从 5.5 --> 迁移到 8.0 ,用了一个星期,都快吐血了。MD ,3 节点 4cpu 8G ,迁移的时候居然要开到 8cpu 32GB 才能 restore 上去。疯了吧。还有社区的 mongo ,AWS 上面,动不动擦的主节点进行变换,那个狗屁自创的 SRV 链接字符串又是哪个家伙想出来的。
|
![]() |
57
bronyakaka 17 小时 25 分钟前 ![]() 不是近两年,国外开源软件很早首选的都是 pg ,功能丰富完全免费 没有法律风险,国内几个国产数据库也是 pg 套壳
|
58
reallycool 17 小时 23 分钟前 ![]() BaaS 流行起来了,PostgreSQL 比 mysql 适配度高多了
|
59
pulutom40 17 小时 22 分钟前 via iPhone ![]() @ufan0 mysql 仅有索引组织表,因此 id 查询场景略有优势,而这刚好满足互联网公司的查多写少场景。
但离开这个领域,mysql 啥都不是,数据量上来后,mysql 分区表拉稀导致只能手动分表,结果就是数据库变成了只能 id 查询。除此之外,如果 mysql 执行稍微复杂点的逻辑,比如联合查询,计算,外键,存储过程,视图等,几乎等于不可用。 |
![]() |
60
ZeroDu 17 小时 16 分钟前 ![]() msyql 有那么说的不堪吗。根据 chatgpt 的对比,简单查询下 mysql 比 pg 性能更好,写入性能也略逊一筹,内存占用 mysql 也是少一点,在轻量级方面 mysql 更适合
|
![]() |
62
Tengdw 17 小时 11 分钟前 via iPhone ![]() 说一个冷知识,我也是在 b 站看了 mysql 头号黑粉的视频才知道的,mysql8.0 之前的版本都是不支持 DDL 事物的
|
![]() |
64
zhaoahui 17 小时 10 分钟前 ![]() PsstgreSQL 已经是第一啦 Mysql 再输要输 Redis 了
|
65
moen 17 小时 1 分钟前 ![]() > 为什么不直接用专门的向量数据库?
这个想法忽略了数据库可靠性的要求,专门的数据库就必须从零造这方面的轮子,不如 pg 已经有多年来的实践验证 |
![]() |
66
test00001 17 小时 0 分钟前 ![]() 没事,再🔥也烧不到 java 佬们
|
67
salmon5 16 小时 53 分钟前 ![]() |
68
seakingii 16 小时 26 分钟前 ![]() 我喜欢 PG 的原因
1 一把梭,啥功能都有.比如做一个知识库,有普通的数据库功能,又有向量功能.不需要在当前没有统治级的向量数据库里找一个,学习一个新的软件,找新的客户端库,还可以让 PG 达到 JSON,GIS,REDIS,MQ 这些功能 2 可以用扩展的语言写存储过程 3 数据库功能完整,高效 4 免费,没有什么乱糟糟的法律问题 |
69
lance07 16 小时 1 分钟前 ![]() @maix27 #9 这人说的不是 mysql 没有各种特性么...然后第二个评论是, 就算不用 pg 的特性, pg 也比 my 强...然后他说 my 只是够用
|
![]() |
70
iv8d 15 小时 28 分钟前 via Android ![]() 这是没办法的事,毕竟只有这个开源。
|
71
bigtear 15 小时 21 分钟前 via Android ![]() 主要原因是开源可控,开源项目用的也多
其次楼上都没提到的点是相比较之下占用会低一些 个人项目都用 pg / sqlite 了 |
![]() |
72
cooltechbs 15 小时 10 分钟前 ![]() 想知道《高性能 MySQL 》如雷贯耳,却没有类似的《高性能 Postgres 》,是因为 Postgres 不需要那么多道道就能实现高性能吗
|
![]() |
73
Hyxiao OP append 好像没生效,在这里回复下。
非常感谢各位大佬的耐心解答,学到了很多!🙏 先说明一下,我发这个帖子真的不是想引战或者踩一捧一,纯粹是最近的一些观察引发的好奇,再加上最近投简历的时候,招聘 JD 里 PostgreSQL 的出现频率也在上升 正如#1 ,#28 楼大佬说的,受八股文的影响再加上呆过的公司基本上都是使用 MySQL😂,我之前确实对 PostgreSQL 的了解不够深入。 另外,最近在个人项目中也开始尝试 PostgreSQL ,发现: - 在代码层面,通过 ORM 使用起来差别确实不大 - PostgreSQL 的一些特性如 JSONB 确实很香 - 社区的文档和支持也很友好 再次感谢大家的分享,希望大家理性讨论哈,毕竟技术没有绝对的好坏,适合场景才是最重要的! |
74
leisifung 15 小时 8 分钟前 ![]() I use Mongodb.
|
75
jhdxr 15 小时 4 分钟前 ![]() pg 虽然在国外一直比较火,但是没想到现在国内 pg 的教徒也这么多了。
丢两个暴论: 1. pg 也就在谁上谁都行的性能场景下能用(且论功能和 MySQL 比的确更丰富),就它的 MVVC 的实现方式居然有人能吹性能真是笑掉大牙 2. pq 的信徒觉得 pg 的 json 实现吊打 nosql ,现在居然还来了向量的实现吊打向量数据库。实际上吧,pg 也就是达到了有和没有的区别。 |
![]() |
76
cwcc 14 小时 58 分钟前 ![]() 我来唱个反调:pgsql 唯一让我讨厌的一个点就是开发团队似乎对静态编译有莫名的偏见,从 19 年开始就明确不支持静态编译 libpq ,这导致很多情况下用 C 写的嵌入式 pg client 都得考虑环境问题,其他主流的开源库几乎都支持这一行为。
|
![]() |
77
skiy 14 小时 55 分钟前 via iPhone ![]() 前两天刚折腾了数据库恢复的功能…恢复的数据表带有权限为 postgres…折腾好久。我以为把数据库的所有权划给用户就行了…这点跟 linux 有点像…
|
78
QlanQ 14 小时 16 分钟前
有 orm 的话 ,后端是什么数据库 应该差别不大吧
现在 关系数据库 越来越 只是 存储功能 向量数据库、统计、查询,如果是小项目,确实是 一个数据库能搞定最好 如果大一点的正式项目,应该都是区分项目和数据库的吧,统计和查询应该都不是一种库吧 |
![]() |
79
dlmy 13 小时 50 分钟前
@ZeroClover 如果向量数据是千万级别,用 pgvector 就够了,既方便自己通过 SQL 来过滤元数据,又有 Self Query 的优势,如果数据量达到亿的级别,就用专门的向量数据库 Milvus
|
![]() |
82
totoro52 13 小时 28 分钟前
pg 的权限设计奇奇怪怪的
|
83
zzboat0422 13 小时 26 分钟前
你们还真从技术角度比较啊,实际更多是非技术原因造成的。
因为去 o ,用 mysql 相当于没去 o ,所以只能二选一用 pg 了。 |
![]() |
84
cocong 13 小时 23 分钟前
工具而已,够用就行,又不是不能换
|
85
back0893 13 小时 23 分钟前
不到啊 反正 mysql 用到死,curd 也没啥差别
|
86
hackyo 12 小时 59 分钟前
我们公司之前产品都是 mysql ,但是新产品 maxkb 用了 pgsql ,说实话就是图 pgvector 的方便,而且很多向量数据库做的还不如 pgvector
|
![]() |
87
8355 12 小时 41 分钟前 ![]() mysql 需要了解最佳实践,数据库所支持的很多功能实际都不能用,8.0 前确实更加糟糕,mysql 的占有率主要是因为 php 才成为主流。
补充一点防止杠精,很多数据库支持 mysql 协议并不代表是基于 mysql 开发,也绝对不是 mysql 。 |
![]() |
88
hafuhafu 12 小时 41 分钟前
前几年搞去 O 都是用 PG 来代替的
|
![]() |
89
skiy 12 小时 37 分钟前
另外说一个,wordpress 官方还不支持 postgres...
|
![]() |
90
wangritian 12 小时 35 分钟前
技术选型并非只看技术,用 mysql 的碰到问题自然就转 pg 了
|
![]() |
91
adoal 12 小时 35 分钟前
@cooltechbs 《 PostgreSQL 9X 之巅》
|
92
JiafuYuan 12 小时 33 分钟前
pgsql 不优化单表 2000w 条数据没压力,mysql200w 不优化的话已经卡的不能用了
|
![]() |
93
yh7gdiaYW 12 小时 13 分钟前
@JiafuYuan 我猜你是拿老版本旧硬件上的 mysql 和现在用的 pg 对比了,往上很多 mysql 单表不能超过 xx 万条的都是这种。这两个数据库都升到比较新的版本+新硬件,单机性能上并没有很大差距。pg 主要是特性多
|
94
Configuration 12 小时 7 分钟前
@yh7gdiaYW #93 复杂 SQL 查询,性能差别巨大
|
95
newtype0092 12 小时 4 分钟前
我搜到了这篇对比文章,从 23 年开始每年更新一次,这个是今年的。
总体结论就是 postgre 稍强,但强有强的代价,还是得按需选择。 https://www.bytebase.com/blog/postgres-vs-mysql/ |
![]() |
96
yh7gdiaYW 11 小时 58 分钟前 ![]() 刚好两个库我这边都在用,分别是 pg 16 和 mysql 8.0 ,服务器硬件比较新是 zen3 的 AMD EPYC + pcie 3.0 速度级别的 SSD 。
单表千万条数据的场景下,这俩库的 CRUD 和简单统计查询(<10 万条级别)的性能是差不多的,有时候 mysql 甚至会更快一点。mysql 比较弱势的地方在于更大规模的统计查询,比如捞几百万条出来求平均数。但这个场景 pg 的性能也不够,ETL 到 Doris 、StarRocks 这类数据库处理更合适。 |
![]() |
97
yh7gdiaYW 11 小时 55 分钟前
@Configuration mysql 8.0 后好了不少,主要是 in 很多值的性能提升明显,以及终于支持了 cte 。pg 的单机性能上限肯定还是要更高一点的,但数据规模一上来单机部署都不够用,pg 的甜点优势区间并不大(刚好命中的话那确实舒服)
|
98
w568w 11 小时 55 分钟前
@yh7gdiaYW #93 > 往上很多 mysql 单表不能超过 xx 万条的都是这种
主要是上面用 MySQL 的,基本都是因为技术升级受阻(不愿学/不敢换/不能升级),这种大概率用的是远古 MySQL ,什么 MySQL 5 比比皆是。中文互联网上的 MySQL 教程基本也都是围绕这些远古版本的 === 我不用 MySQL 的理由倒是和你说的一样,这玩意儿的 JSON 支持到现在还是半残废 |