V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
unt
V2EX  ›  数据库

过来人说说, postgresql 和 mysql 究竟怎么选

  •  1
     
  •   unt · 16 天前 · 9777 次点击
    从客户要求,系统架构,公司内部技术栈,领导偏好,个人使用体验等多方面聊聊
    111 条回复    2025-02-09 10:47:45 +08:00
    1  2  
    Seanfuck
        1
    Seanfuck  
       16 天前   ❤️ 2
    没有硬性要求就无脑 mysql ,简单省事。
    whevether
        2
    whevether  
       16 天前   ❤️ 1
    sql 玩的不好的还是 mysql 吧。简单。高手可以玩 pg
    rekulas
        3
    rekulas  
       16 天前
    看业务,如果未来业务对 json 需求高的可以上 pg ,如果不高就 mysql 又成熟又稳
    以基础框架为例,优先适配、测试用例覆盖更全的也是 mysql ,找库也好找些
    laikick
        4
    laikick  
       16 天前
    必须使用独立自主的 mysql
    defunct9
        5
    defunct9  
       16 天前
    mysql ,pg 的模式很麻烦的。
    hefish
        6
    hefish  
       16 天前
    哈哈哈, 我选 sql2000 。咳咳。。。
    8355
        7
    8355  
       16 天前
    mysql 已经不是以前的 mysql 了,支持 mysql 协议的数据库很多,性能也有很好的,扩展和迁移方案也很多。
    iFerrari860
        8
    iFerrari860  
       16 天前
    之前业务系统从 mysql 转 pg ,改到冒烟。。想轻松就无脑选 mysql.
    beneo
        9
    beneo  
       16 天前
    pg ,真的,从 0 到 1000 都可以,云,本地,包括信创过渡都没问题
    qqjt
        10
    qqjt  
       16 天前
    ……哥们你来收集话术的吗?这类讨论网上多的是啊
    luckyrayyy
        11
    luckyrayyy  
       16 天前
    绝大多数业务不用选,你抽签就完了。
    chendy
        12
    chendy  
       16 天前
    政策法规 > 领导喜好 > 使用成本 >> 其他
    gimp
        13
    gimp  
       16 天前
    没啥理由,我投 PG 一票
    knightdf
        14
    knightdf  
       16 天前
    pgpgpg
    FrankFang128
        15
    FrankFang128  
       16 天前
    pg
    mistsobscure
        16
    mistsobscure  
       16 天前
    @FrankFang128 方老师最近有啥好玩的项目吗
    fffq
        17
    fffq  
       16 天前
    团队对哪个熟悉选哪个
    encro
        18
    encro  
       16 天前
    那么必须是扩展有几百个的 pg 啊。

    装一个扩展,就变身了!!!
    shiny
        19
    shiny  
       16 天前
    postgresql ,运维更容易点
    ymmud
        20
    ymmud  
       16 天前
    pg,如果哪天要转国产化,会少一些痛苦
    0x1001
        21
    0x1001  
       16 天前
    @ymmud 非常准确,信创数据库都是用的 pg 改的
    guanhui07
        22
    guanhui07  
       16 天前
    mysql
    wangtian2020
        23
    wangtian2020  
       16 天前
    mysql 的时序支持度不如 pgsql ,所以 pgsql 完爆 mysql
    FrankFang128
        24
    FrankFang128  
       16 天前
    @mistsobscure ai + 浏览器插件项目较多
    dbskcnc
        25
    dbskcnc  
       16 天前
    sql server 2000 转 pg 8 后从没用过其它数据库,pg 实在太省心了
    hingle
        26
    hingle  
       16 天前
    一般问这种问题的,大多数都是两者都不熟。

    建议选 mysql ,出问题搜搜问问都好解决,等熟悉了想换 pg 也不迟。
    defunct9
        27
    defunct9  
       16 天前
    https://bajie.dev/posts/20240205-postgres_user_manager/ pg 的权限管理,比 MySQL 简单? crazy
    murmur
        28
    murmur  
       16 天前
    秒选 postgres ,信创的东西都是 postgres 翻版
    billbob
        29
    billbob  
       16 天前
    postgresql
    billbob
        30
    billbob  
       16 天前
    PG 原生支持 全文搜索, 数据统计物化视图洗数据, AI 支持空间数据'向量数据,中文分词,免费,大量的开源扩展.
    Rickkkkkkk
        31
    Rickkkkkkk  
       16 天前
    你这个提问方式适合问 ai
    Leviathann
        32
    Leviathann  
       16 天前
    用 pg 的大部分项目可以只用 pg
    用 mysql 还得另外加一堆东西
    AmaQuinton
        33
    AmaQuinton  
       16 天前
    选 pg
    Geon97
        34
    Geon97  
       16 天前
    工作还是 MySQL 省心,虽然还是 pg 好,但我工作的话还是选 mysql ,自己用就选 pg
    AdamMing
        35
    AdamMing  
       16 天前
    以后可能因为信创转库的话,推荐用 pg 。
    zoharSoul
        36
    zoharSoul  
       16 天前
    mysql
    postgre 那个设置自动更新 update_time 非要设个触发器, 简直服了
    iminto
        37
    iminto  
       16 天前 via Android
    菜就 mysql
    水平高就 pg
    momo2789
        38
    momo2789  
       16 天前   ❤️ 3
    当然无脑 postgresql ,mysql 可以丢进历史的垃圾桶了。
    mmmhhhddd
        39
    mmmhhhddd  
       16 天前
    如果没啥人用的简单的数据库就 mysql,如果奔着要发展起来就 postgresql ,本人项目 pg 集群 16c32g * 50 台
    bjfane
        40
    bjfane  
       16 天前
    @murmur 也不全是,oceanbase 不是吧,虽然是分布式, 但是符合信创,且兼容 mysql 的程序 :)
    seansong
        41
    seansong  
       16 天前
    熟悉哪个用哪个,客户要求哪个用哪个,领导要求哪个用哪个
    wencan
        42
    wencan  
       16 天前
    之前都是 mysql ,现在 pg ,一样的,sql 稍有不同而已
    zhouyin
        43
    zhouyin  
       16 天前
    @mmmhhhddd
    你的什么大数据项目 产生多少钱了?
    huage
        44
    huage  
       16 天前
    能问这个问题的,还用选吗?
    donaldturinglee
        45
    donaldturinglee  
       16 天前
    All in PostgreSQL!
    yeqizhang
        46
    yeqizhang  
       16 天前 via Android
    投 pg 一票
    ponyfk
        47
    ponyfk  
       16 天前
    我用的 pg ,如果要让我重新选的话,我肯定会用 mysql 。因为 pg 占用内存太高了,买机器都要多花点钱。
    Soo0
        48
    Soo0  
       16 天前 via iPhone
    谁出钱谁说了算,业主不说,熟悉什么用什么
    phithon
        49
    phithon  
       16 天前
    个人使用就无脑 pg
    iwdmb
        50
    iwdmb  
       16 天前
    Postgres is eating the database world
    no13bus
        51
    no13bus  
       16 天前
    orm 的话不在乎数据库是啥吧。还有没有说具体的场景,没法判断。
    scienhub
        52
    scienhub  
       15 天前
    这里有个类似的讨论 https://www.reddit.com/r/node/comments/rv6u8u/why_do_you_choose_mysql_over_postgres/

    Top 2 评论:

    1. The big advantage MySQL had, which is rapidly fading, is that it was easily available on cPanel and Plesk hosts, which postgres was not. There was a time that that was 95% of non-expensive hosting.

    Back in the era when PHP was everything, that was a big deal. Now, not so much.

    If you have to support self-install people on cheap hosting, it can still matter, but that is a vanishing goal these days


    2. I haven't found any benefits in MySQL, and I wish I could switch to Postgres.
    zhouyin
        53
    zhouyin  
       15 天前 via Android
    没人说 pg 的 sql 语句更严格吗 需要把 groupby 后面的字段都出现在 select 子句里
    mysql 我一直以来都把 sql_mode 设为空
    mistsobscure
        54
    mistsobscure  
       15 天前
    @FrankFang128 我昨天才想开始做一个浏览器插件哈哈,就不在这个楼里 ot 了,希望方老师之后再出点好玩的文章或者视频~
    AlexHsu
        55
    AlexHsu  
       15 天前
    大多数系统都是拿 pg 当 mysql 用吧 没啥区别
    flowerains
        56
    flowerains  
       15 天前
    mysql8.0 以上的没有那么不堪,怕就怕业务系统强制要用 5.7 的,这个可太常见了(某些草台班子框架代码好几百年不更新了,mysql 就只支持 5.7 )
    ice2016
        57
    ice2016  
       15 天前
    pg
    VampireDemon
        58
    VampireDemon  
       15 天前
    无脑 pg 啊,后期也好扩展
    cooltechbs
        59
    cooltechbs  
       15 天前
    我在国内的时候如果自建几乎都是 MySQL ,来了硅谷发现他们都用 Postgres (以上均不分大厂小厂),我也不是很理解……
    ufan0
        60
    ufan0  
       15 天前
    冲 RLS 和优秀的边缘函数选的 PG
    afeiche
        61
    afeiche  
       15 天前
    听 dba 的
    debuggerx
        62
    debuggerx  
       15 天前
    除非是超大型项目,或者开发素质极差,可能还需要对比一下两者哪个更适合团队,否则无脑 PG 没毛病。对一般规模的项目,同样负载 PG 资源消耗小得多,同配置下 PG 性能强得多,开发时 PG 灵活得多,除了历史原因找不到新项目还用 MySQL 的理由。
    Huelse
        63
    Huelse  
       15 天前
    postgresql 性能和扩展各方面都更优秀,嫌麻烦怕是 mysql 舒适圈呆惯了。
    mPatrickStar
        64
    mPatrickStar  
       15 天前
    PostgreSQL !
    daimaosix
        65
    daimaosix  
       15 天前
    我宣布,本帖热门 DB 是 PostgreSQL
    Jinnyu
        66
    Jinnyu  
       15 天前   ❤️ 1
    之前在 12306
    互联网层用的是 MySQL
    客票底层用的是 PG
    qq135449773
        67
    qq135449773  
       15 天前
    这个问题大概率还是取决于与你共事的人会用什么。

    某些国内底层 Java 仔 MySQL 能用懂就已经很不错了。
    hd7771
        68
    hd7771  
       15 天前
    你业务 tps 不高,哪个熟悉用哪个。如果业务可以吃满机器,MySQL 的机器利用率一般会高一些。
    duanxianze
        69
    duanxianze  
       15 天前
    建议一步到位直接用国产数据库
    niubiman
        70
    niubiman  
       15 天前
    无脑 pg, 战未来
    nm1st
        71
    nm1st  
       15 天前
    pg
    站未来
    elltor
        72
    elltor  
       15 天前
    从客户和领导偏好来讲,谁维护系统,更倾向用谁的技术栈;从系统架构和技术栈来讲,哪个成熟用哪个,需要考虑的点:可用性(是否支持多 az 、多环境),运维(数据同步&迁移&恢复&安全)、扩展性( sharding 支持、ETL )。

    个人观点:一般公司里 mysql 基础设施比较全,比较推荐 mysql 。从项目大小来看,大项目推荐 mysql ,小项目无所谓。
    kestrelBright
        73
    kestrelBright  
       15 天前
    自己哪个熟用哪个
    aincvy
        74
    aincvy  
       15 天前   ❤️ 1
    pg 支持 int[], float[] 之类得数组类型,mysql 好像不支持。
    pg 可以用插件做向量数据库, mysql 9 好像支持了
    pg 好像不能调整字段顺序,mysql 可以
    pg 支持 json 类型,可以直接应用 sql 语句查询 json 元素, mysql 8 支持了, 程度和 pg 是否一致不清楚
    pg 修改字段类型得时候 我有点玩不懂 好像允许使用 cast 转换原有数据, mysql 感觉 比较简单一些, 比如 int -> float
    dzdh
        75
    dzdh  
       15 天前
    pg 不能调整字段顺序真的好难受。。。
    dzdh
        76
    dzdh  
       15 天前
    加一层字段映射好难吗。我不管底层咋存。我只想我通过工具看的时候是那个顺序。。。
    securityCoding
        77
    securityCoding  
       15 天前
    @0x1001 能说说为什么国产信创大多用 pg 吗?
    Huelse
        78
    Huelse  
       15 天前
    @dzdh 这个问题很早以前就讨论过,结论是 select 字段自己调整顺序,没必要多存数据
    partner666
        79
    partner666  
       15 天前
    @securityCoding #77 因为国内有 HighGo 啊
    yoyolichen
        80
    yoyolichen  
       15 天前
    gis 行业必选 pg
    angryfish
        81
    angryfish  
       15 天前   ❤️ 1
    作为一个懒惰的程序员,我只会 mysql ,所以我只用 mysql 。(又不是不能用,凭啥让我多学一个数据库。)
    me1onsoda
        82
    me1onsoda  
       15 天前
    无脑 pg 就完了
    rlds
        83
    rlds  
       15 天前
    没啥理由,我选 PG
    dwu8555
        84
    dwu8555  
       15 天前
    pg

    用过 pg+citus 你就懂了,处理大数据分片很方便,也不需要额外引入一个 TiDB 。
    处理 GIS 又有 PostGIS ,各种空间几何运算,很方便。
    june4
        85
    june4  
       15 天前
    我是全用 mysql ,只是因为之前学的就是这个。
    但已经明显感受到 mysql 的功能有点力不从心,如果重头开始的话,我会选 pg 。
    yinxs2003
        86
    yinxs2003  
       15 天前
    无脑 mysql ,真出问题,那帮吹 pg 的,又不会来帮你搞
    yplam
        87
    yplam  
       15 天前 via Android
    选择 pg 因为支持向量运算,做相关推荐之类的功能很方便
    dragondove
        88
    dragondove  
       15 天前
    @securityCoding pg 的源码写的好,易读易修改
    ala2008
        89
    ala2008  
       15 天前
    pg 很强大,扩展插件很方便
    ala2008
        90
    ala2008  
       15 天前
    @mmmhhhddd 集群方案是啥,pgpool ?
    dmanbu
        91
    dmanbu  
       15 天前
    pg 对运维极不友好
    Jinnrry
        92
    Jinnrry  
       15 天前
    @cooltechbs 因为国内 mysql 的 DBA 多,好招人
    adoal
        93
    adoal  
       15 天前
    用小地瓜上的说法:你这样不负责任地起号,你浮木知道吗?
    tracebundy
        94
    tracebundy  
       15 天前
    必须 MySQL , pg 和 mysql 占有率不是一个量级的
    wdhwg001
        95
    wdhwg001  
       15 天前
    pg ,说实话 my 会死锁这个设计始终非常弱智,但是 pg 的 vacuum 有时候有写入性能和占用空间的坑,上个透明压缩会好很多。
    Zakl21
        96
    Zakl21  
       15 天前   ❤️ 2
    讲一个事情,500w 级别的表数据,三表联查,pg 毫无压力,mysql cpu,内存打满,响应是六七倍的耗时。。。
    zhouyin
        97
    zhouyin  
       15 天前
    @gimp
    @knightdf
    @FrankFang128
    @shiny
    @encro
    @ymmud
    @0x1001
    @wangtian2020
    @dbskcnc
    @defunct9
    @billbob
    @murmur
    @billbob
    @Leviathann
    @AmaQuinton
    @Geon97
    @AdamMing
    @zoharSoul
    @momo2789
    @mmmhhhddd
    @wencan
    @donaldturinglee
    @ala2008
    @dmanbu

    诸位 真心用过 pg 和 mysql 的说说 mysql 有 memory 引擎 postgresql 最新版有没有?
    defunct9
        98
    defunct9  
       15 天前
    都用到啥 memory 了,用 redis 吧
    edisonwong
        99
    edisonwong  
       15 天前
    有足够技术自信 、 有用到 pg 特性而 mysql 没有的、对性能有要求的, 三者符合一个选 pg ,其余情况用 mysql
    18500592934
        100
    18500592934  
       15 天前
    我们项目中用到了 pg 做归档,好几年了,我翻代码从来没有触碰过这一块,所以稳定性上还是不错的。
    坐等大佬发言,学习下;
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   920 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:48 · PVG 06:48 · LAX 14:48 · JFK 17:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.