• 请不要在回答技术问题时复制粘贴 AI 生成的内容
andie
V2EX  ›  程序员

我就喜欢听人夸 PostgreSQL

  •  2
     
  •   andie · 9 days ago · 9632 views
    好文分享 https://www.raphaelbauer.com/posts/postgresql-everything

    万物借口 PostgreSQL
    包括你的 PS5

    再多夸点,爱听
    48 replies    2026-09-16 10:58:57 +08:00
    chjqpmain
        1
    chjqpmain  
       9 days ago via Android
    感谢分享,(虽然目前只看了首页,里面链接的跳转还没读,但起夜的精神消耗光了,只能先睡觉了)
    vcfger
        2
    vcfger  
       9 days ago via iPhone
    感谢分享,白天仔细读下,
    Thesara
        3
    Thesara  
       9 days ago
    我想起一个博主叫原子能,经常看到他拿 PgSQL 疯狂尊重 MySQL
    restkhz
        4
    restkhz  
       9 days ago
    我第一个想到的也是原子能那个哥...
    ratazzi
        5
    ratazzi  
    PRO
       9 days ago via iPhone
    https://github.com/ratazzi/quebec
    借鉴 solid queue 的任务队列,PostgreSQL 是第一优先级
    chenzw2
        6
    chenzw2  
       9 days ago
    这文章是认真的吗?一个 pg 能替代了这么多个中间件?
    thatlazyman
        7
    thatlazyman  
       9 days ago
    开源 DB 最棒
    有人照着这个写了个 Sqlite For Everything : https://joecode.com/2026-08-19-sqlite3/
    changdy
        8
    changdy  
       9 days ago
    你也是会取标题的. 正文里面也都只是调侃下.

    另外开源数据库你还能指望谁? mysql 还是 mariadb?
    kapr1k0rn
        9
    kapr1k0rn  
       9 days ago   ❤️ 1
    坐等冯老板出来说“我几年前就提出这个了”
    layxy
        10
    layxy  
       9 days ago
    如果这么多中间件都使用 pgsql ,那性能不得爆炸了,任何一个导致 pgsql 性能问题大概率会影响其他的,直接血崩,这个感觉适合个人项目或早期验证项目,实际生产级的还是专业的事交给专业的工具
    Cabana
        11
    Cabana  
       9 days ago
    同喜同喜,自己所有项目只用 psql 或者 sqllite
    foufoufm
        12
    foufoufm  
       9 days ago
    @Cabana 我靠,同样啊,我自己的项目也只用这两个
    woodfizky
        13
    woodfizky  
       9 days ago
    本站有 PostgreSQL 节点的,还是发到程序员节点了。额。。能移可以考虑移动一下。

    PG 代替所有,看起来很美好。
    但是你但凡有哪个环节比较耗性能+数据量大,用 PG 自带的插件之类的解决,感觉都要打个问号。

    实际我们试了一下,用 PG 代替 Elastic ,大量数据,一定程度的并发写入 PG(每行几十兆大的数据),会出现数据库连接超时、写入超时、写入速度因为高并发变慢的问题。
    也不知道是不是负责这块的同事不太会做压力测试还是怎么样,还是说我们实际上数据库是 GaussDB(A 模式)兼容 PG 但是是旧版本 PG 魔改导致性能有差异或者核心版本落后的问题或者缺少扩展插件等的原因。
    但是就算是 PG 高版本,高并发大数据写入,用 PG 我也没一个乐观的预估。

    反正方案被否了,老老实实回去用 ES 那套了。
    Configuration
        14
    Configuration  
       9 days ago
    @layxy 中小型项目希望减少依赖会用这个方案,大型项目还是该怎么拆仍旧怎么拆
    liangc230323
        15
    liangc230323  
       9 days ago
    @Thesara 全网最尊重 Mysql 博主
    cutiechi
        16
    cutiechi  
       9 days ago
    @woodfizky 不是有 gp 吗
    woodfizky
        17
    woodfizky  
       9 days ago
    @cutiechi #16 GP 是啥? Greenplum ?
    YanSeven
        18
    YanSeven  
       9 days ago   ❤️ 2
    @一下全网最尊重 PG 的个体户——冯若航
    Maerd
        19
    Maerd  
       9 days ago
    我们的项目用 pg+fsm 替代了消息队列,效果很好,因为我们有一个任务系统,涉及很麻烦的订单流转、取消、审核、申诉、重入、冻结各类异步状态,还有一大堆的细粒度权限管控。消除了消息队列,配合事务+fsm 后,最大的收益是不需要考虑一致性问题了,心智负担爆减;
    唯一最大的问题是,由于现在分布式数据库大多是存储和计算分离,所以相比之前的消息队列成本翻了接近 10 倍(虽然和收益相比不算什么)
    YanSeven
        20
    YanSeven  
       9 days ago
    @Maerd 请教下,为啥在存算分离的 pg 上使用消息队列会导致比消息队列的成本翻 10 倍呢。
    mywaiting
        21
    mywaiting  
       8 days ago   ❤️ 2
    我一直觉得宣传 PG 能够后端一锅端是对 PG 的伤害.....

    PG 作为数据库之一,其最大价值是事务执行,各种牛逼的 PG 插件始终都是基于这个特性上去**适配**各种数据场景/需要

    宣扬其能**代替**系列/相关后端的实现,对中小应用有价值

    稍微上点强度/流量,还是该拆拆该分分,该代替的代替

    用之前看过 V2 网友发的一段例子做总结吧:

    Q 编程中为了部署架构简单而选择用软件 A 做功能 B 的事,比如 Redis 作为缓存也能用作队列使用,那为什么不这样做呢?
    A 可以用、不好用、没必要

    是的,这个也用来总结 PG 一锅端就很合适:可以用、不好用、没必要
    zengxs
        22
    zengxs  
       8 days ago
    All in One = All in Boom

    专业的场景还得专业的工具

    文章案例 PG 取代 MongoDB ,我以前还真试过,PG 在这个场景性能比 MONGO 差不止一点
    unpay
        23
    unpay  
       8 days ago
    在用。。很丝滑。。
    yjhatfdu2
        24
    yjhatfdu2  
       8 days ago
    @woodfizky 是 gauss 垃圾,华为的软件能用?你用正版 pg+那几个新的全文索引/向量索引试试
    woodfizky
        25
    woodfizky  
       8 days ago
    @yjhatfdu2 #24 不是我不想,甲方不给引进,不然为啥要从 PG 转高斯?
    转到高斯连 json 索引和 gin/gist 索引都不支持了。
    一句话要求能转信创都转信创,说是有问题信创团队兜底。一问为什么不支持索引/扩展,信创团队全部支支吾吾。
    华为的钱还是太好赚了。。
    mmdsun
        26
    mmdsun  
       8 days ago via iPhone
    《盘点一下 pgsql 哪些逆天的设计》
    1 、古老的多进程 fork 、多线程 epoll 不用
    2 、双重缓存 double buffering ,direct_io 一直是实验特性。
    3 、低性能的 mvcc 、事物 XID 回绕问题
    cloudzhou
        27
    cloudzhou  
       8 days ago
    @woodfizky 别听他胡扯,PG 代替 Elastic 这本来就不是正道,哪怕官方 PG ,除非搜索的东西本来不大,不想引入 Elastic 。

    所有的中间件,就做该中间件最擅长事情,reids 做 cache ,kafka 做 mq ,如此而已
    其他都是奇淫技巧,只是为了缓解没有对应中间件的尴尬
    hd7771
        28
    hd7771  
       8 days ago
    2026 还吹 pg 呢🤣
    craftsmanship
        29
    craftsmanship  
       8 days ago via Android   ❤️ 1
    @hd7771 2026 还能看到有人讨论技术相关内容 就已经很难得了
    frayesshi1
        30
    frayesshi1  
    PRO
       8 days ago
    @hd7771 #28 说明很多在信创下面做开发呗。并且大部分国产 DB 都是基于 PG 二次开发而来的。
    jinsongzhaocn
        31
    jinsongzhaocn  
       8 days ago
    这篇文章是帮倒忙吧,更像是被替代,psql 功能多,但比不过专业的性能,一旦需要高性能,就会转去那些替代产品
    Gomoku2024
        32
    Gomoku2024  
       8 days ago
    @layxy 肯定不止起一个 pgsql
    adoal
        33
    adoal  
       8 days ago
    比起 all in PG 的 boom 风险,小公司更大的风险可能是还没做到 all in PG 撑不住的程序,老板就先撑不住,带着小姨子跑了……
    daysv
        34
    daysv  
       8 days ago
    我更喜欢吹 sqlite
    lookenghua
        35
    lookenghua  
       8 days ago
    数据量不多.小型项目可以一把嗦,大项目还是得拆开
    levelworm
        36
    levelworm  
       8 days ago via iPhone
    @cloudzhou #27
    我倒是看见一篇 Uber 的用 clickhouse 代替 elastic 做 logging analytics 的。可惜我自己不太懂。
    cloudzhou
        37
    cloudzhou  
       8 days ago   ❤️ 1
    @levelworm clickhouse 代替 elastic 做 logging analytics 的逻辑是不一样的
    elastic 擅长做不规则查询,比如 a =~ "*xxx*" || b =~ "*yyy*" 各种复杂的语法,倒排搜索
    clickhouse 是列式存储,重点是数据分析,如果 logging 非常规范 json 化,那么可以对指定 filed 插入,形成宽表,把 db 、rpc 、甚至商业信息都纳进去,借助 clickhouse 强大的分析能力,直接输出报表
    levelworm
        38
    levelworm  
       8 days ago via iPhone
    @cloudzhou 多谢,的确如此。
    andie
        39
    andie  
    OP
       8 days ago
    @daysv 这不就来了吗,要就有

    https://joecode.com/2026-08-19-sqlite3/
    raysonlu
        40
    raysonlu  
       8 days ago
    所以,单纯地在数据库里面 CURD 数据,不期待数据库做什么额外的“骚操作”,直白说就是仅用 CURD+索引功能+事务功能,( 2026 年了)是否还是 mysql 才是最优解?
    ulpyxua
        41
    ulpyxua  
       7 days ago
    PG 这玩玩意儿,在 windows 中装过一次,就再也不想用了。
    keenkiller
        42
    keenkiller  
       7 days ago
    小项目可以搞,大项目不要自杀
    Maerd
        43
    Maerd  
       7 days ago
    @YanSeven mq 的底层逻辑是数据顺序 append 到磁盘(甚至仅在页缓存中),消费完移动 offset ,几乎是纯内存+顺序磁盘 io ,开销非常低,一条消息消费完就通过指针 ack 了。
    但是对于数据库来说,计算节点和存储节点之间隔着网络。每一次事务提交、状态变更( WAL 日志下发、页面刷新),都在跨网络刷盘,io 请求是按量高额收费的,状态流转越频繁账单就越夸张。
    wdhwg001
        44
    wdhwg001  
       7 days ago
    啥时候能把 fork 换了,能把 double caching 修了,还有 pg 的复杂度已经不是人调参调的动的程度了,主流都上贝叶斯了,另外你今天战 planner 了吗,这周 vacuum 造了几个尖峰出来要修?
    kyochilian
        45
    kyochilian  
       7 days ago
    原子能狂喜,哈哈哈
    WashFreshFresh
        46
    WashFreshFresh  
       7 days ago
    真的难得,受够了打开 V2EX 都是帖子讨论哪个模型强,中转站,降智,重置了。
    Rorysky
        47
    Rorysky  
       7 days ago
    嵌入式数据库存一切
    只用 sqlite duckdb
    SingeeKing
        48
    SingeeKing  
       7 days ago
    PostgreSQL - Replacing your Playstation 5

    干得漂亮
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5412 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 127ms · UTC 03:35 · PVG 11:35 · LAX 20:35 · JFK 23:35
    ♥ Do have faith in what you're doing.