YanSeven

postgresql 多进程改多线程

  •  
  •   YanSeven · Dec 18, 2025 · 3047 views
    This topic created in 150 days ago, the information mentioned may be changed or developed.
    pg 是多进程模型的,那么我有如下几个问题:

    1. 在现在的软件实践中,总体而言,大型基础软件的多线程模型是否比多进程更有优势。
    2. pg 有必要改成多线程模型吗。
    3. pg 官方有讨论过改多线程模型吗。
    4. pg 如果要改的话,哪一块儿是有必要改的,哪一块儿是没必要改的。
    5. pg 如果要改的话,哪一块儿是好改的,哪一块儿是不好改的。
    5. 改完之后,除了有个“噱头”用来写宣传文章,真的有收益吗。性能上,运维上,兼容性上有价值吗。
    5 replies    2025-12-19 10:49:40 +08:00
    codehz
        1
    codehz  
       Dec 18, 2025   ❤️ 2
    为什么这种 1 秒钟就能搜索到的内容要放在这里问。。。
    https://wiki.postgresql.org/wiki/Multithreading
    YanSeven
        2
    YanSeven  
    OP
       Dec 18, 2025
    @codehz 感谢
    crazzy
        3
    crazzy  
       Dec 18, 2025   ❤️ 3
    你问这些问题,大概率证明你思考了,但是却只思考了一点点。我是想回答又不想回答你,但是我既然准备回复你,就不做无意义回复。


    进程、线程、协程甚至于 goroutine 都是并发模型,不同的模型因为实现机制不同,在不同的场景下各有优劣,并不是绝对的优劣势。

    例如,进程的上下文切换开销大,线程的上下文切换开销小,那么单纯考虑上下文切换开销,我们就选择多线程模型吗?为什么不考虑协程或 goroutine ?

    PostgreSQL 选择多进程模型是因为在它最初开始开发的时候,线程在各个操作系统中是一个很新颖的东西,而进程却很成熟了,没得选。

    对于数据库这种有很多共享数据的软件,从理论上多线程就比多进程有优势,所以后期很多数据库都是多线程模型。


    - 有没有讨论过改、有没有必要改;要学会自己收集信息,邮件列表是公开的,不回答
    - 在一定要改动的情况下,必要和非必要、好改和不好改的区分;在你没有阅读过源码、了解其生态的情况下,仅有一个答案有什么意义?不回答
    - 改成多线程模型后的收益;这个问题问的,你可能都没有深入的使用过 PostgreSQL ,也不了解并发模型,可能你就是制造一个噱头来提问的吧...
    YanSeven
        4
    YanSeven  
    OP
       Dec 18, 2025
    @crazzy 感谢回复!我在一个和数据库相关的边缘团队里面供职才不久,目前听到上头的人在讨论做 pg 的二开改动,所以有次疑问,如您精准的判断,我对 pg 的认识仍然是皮毛。由于用 ai 用多了,所以打字的时候不自觉的就把提问加的啰嗦了,已经检索到相关的社区讨论了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3103 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 12:44 · PVG 20:44 · LAX 05:44 · JFK 08:44
    ♥ Do have faith in what you're doing.