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

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

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

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

    建议选 mysql ,出问题搜搜问问都好解决,等熟悉了想换 pg 也不迟。
    defunct9
        27
    defunct9  
       6 天前
    https://bajie.dev/posts/20240205-postgres_user_manager/ pg 的权限管理,比 MySQL 简单? crazy
    murmur
        28
    murmur  
       6 天前
    秒选 postgres ,信创的东西都是 postgres 翻版
    billbob
        29
    billbob  
       6 天前
    postgresql
    billbob
        30
    billbob  
       6 天前
    PG 原生支持 全文搜索, 数据统计物化视图洗数据, AI 支持空间数据'向量数据,中文分词,免费,大量的开源扩展.
    Rickkkkkkk
        31
    Rickkkkkkk  
       6 天前
    你这个提问方式适合问 ai
    Leviathann
        32
    Leviathann  
       6 天前
    用 pg 的大部分项目可以只用 pg
    用 mysql 还得另外加一堆东西
    AmaQuinton
        33
    AmaQuinton  
       6 天前
    选 pg
    Geon97
        34
    Geon97  
       6 天前
    工作还是 MySQL 省心,虽然还是 pg 好,但我工作的话还是选 mysql ,自己用就选 pg
    AdamMing
        35
    AdamMing  
       6 天前
    以后可能因为信创转库的话,推荐用 pg 。
    zoharSoul
        36
    zoharSoul  
       6 天前
    mysql
    postgre 那个设置自动更新 update_time 非要设个触发器, 简直服了
    iminto
        37
    iminto  
       6 天前 via Android
    菜就 mysql
    水平高就 pg
    momo2789
        38
    momo2789  
       6 天前   ❤️ 3
    当然无脑 postgresql ,mysql 可以丢进历史的垃圾桶了。
    mmmhhhddd
        39
    mmmhhhddd  
       6 天前
    如果没啥人用的简单的数据库就 mysql,如果奔着要发展起来就 postgresql ,本人项目 pg 集群 16c32g * 50 台
    bjfane
        40
    bjfane  
       6 天前
    @murmur 也不全是,oceanbase 不是吧,虽然是分布式, 但是符合信创,且兼容 mysql 的程序 :)
    seansong
        41
    seansong  
       6 天前
    熟悉哪个用哪个,客户要求哪个用哪个,领导要求哪个用哪个
    wencan
        42
    wencan  
       6 天前
    之前都是 mysql ,现在 pg ,一样的,sql 稍有不同而已
    zhouyin
        43
    zhouyin  
       6 天前
    @mmmhhhddd
    你的什么大数据项目 产生多少钱了?
    huage
        44
    huage  
       6 天前
    能问这个问题的,还用选吗?
    donaldturinglee
        45
    donaldturinglee  
       6 天前
    All in PostgreSQL!
    yeqizhang
        46
    yeqizhang  
       5 天前 via Android
    投 pg 一票
    ponyfk
        47
    ponyfk  
       5 天前
    我用的 pg ,如果要让我重新选的话,我肯定会用 mysql 。因为 pg 占用内存太高了,买机器都要多花点钱。
    Soo0
        48
    Soo0  
       5 天前 via iPhone
    谁出钱谁说了算,业主不说,熟悉什么用什么
    phithon
        49
    phithon  
       5 天前
    个人使用就无脑 pg
    iwdmb
        50
    iwdmb  
       5 天前
    Postgres is eating the database world
    no13bus
        51
    no13bus  
       5 天前
    orm 的话不在乎数据库是啥吧。还有没有说具体的场景,没法判断。
    scienhub
        52
    scienhub  
       5 天前
    这里有个类似的讨论 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  
       5 天前 via Android
    没人说 pg 的 sql 语句更严格吗 需要把 groupby 后面的字段都出现在 select 子句里
    mysql 我一直以来都把 sql_mode 设为空
    mistsobscure
        54
    mistsobscure  
       5 天前
    @FrankFang128 我昨天才想开始做一个浏览器插件哈哈,就不在这个楼里 ot 了,希望方老师之后再出点好玩的文章或者视频~
    AlexHsu
        55
    AlexHsu  
       5 天前
    大多数系统都是拿 pg 当 mysql 用吧 没啥区别
    flowerains
        56
    flowerains  
       5 天前
    mysql8.0 以上的没有那么不堪,怕就怕业务系统强制要用 5.7 的,这个可太常见了(某些草台班子框架代码好几百年不更新了,mysql 就只支持 5.7 )
    ice2016
        57
    ice2016  
       5 天前
    pg
    VampireDemon
        58
    VampireDemon  
       5 天前
    无脑 pg 啊,后期也好扩展
    cooltechbs
        59
    cooltechbs  
       5 天前
    我在国内的时候如果自建几乎都是 MySQL ,来了硅谷发现他们都用 Postgres (以上均不分大厂小厂),我也不是很理解……
    ufan0
        60
    ufan0  
       5 天前
    冲 RLS 和优秀的边缘函数选的 PG
    afeiche
        61
    afeiche  
       5 天前
    听 dba 的
    debuggerx
        62
    debuggerx  
       5 天前
    除非是超大型项目,或者开发素质极差,可能还需要对比一下两者哪个更适合团队,否则无脑 PG 没毛病。对一般规模的项目,同样负载 PG 资源消耗小得多,同配置下 PG 性能强得多,开发时 PG 灵活得多,除了历史原因找不到新项目还用 MySQL 的理由。
    Huelse
        63
    Huelse  
       5 天前
    postgresql 性能和扩展各方面都更优秀,嫌麻烦怕是 mysql 舒适圈呆惯了。
    mPatrickStar
        64
    mPatrickStar  
       5 天前
    PostgreSQL !
    daimaosix
        65
    daimaosix  
       5 天前
    我宣布,本帖热门 DB 是 PostgreSQL
    Jinnyu
        66
    Jinnyu  
       5 天前   ❤️ 1
    之前在 12306
    互联网层用的是 MySQL
    客票底层用的是 PG
    qq135449773
        67
    qq135449773  
       5 天前
    这个问题大概率还是取决于与你共事的人会用什么。

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

    个人观点:一般公司里 mysql 基础设施比较全,比较推荐 mysql 。从项目大小来看,大项目推荐 mysql ,小项目无所谓。
    kestrelBright
        73
    kestrelBright  
       5 天前
    自己哪个熟用哪个
    aincvy
        74
    aincvy  
       5 天前   ❤️ 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  
       5 天前
    pg 不能调整字段顺序真的好难受。。。
    dzdh
        76
    dzdh  
       5 天前
    加一层字段映射好难吗。我不管底层咋存。我只想我通过工具看的时候是那个顺序。。。
    securityCoding
        77
    securityCoding  
       5 天前
    @0x1001 能说说为什么国产信创大多用 pg 吗?
    Huelse
        78
    Huelse  
       5 天前
    @dzdh 这个问题很早以前就讨论过,结论是 select 字段自己调整顺序,没必要多存数据
    partner666
        79
    partner666  
       5 天前
    @securityCoding #77 因为国内有 HighGo 啊
    yoyolichen
        80
    yoyolichen  
       5 天前
    gis 行业必选 pg
    angryfish
        81
    angryfish  
       5 天前   ❤️ 1
    作为一个懒惰的程序员,我只会 mysql ,所以我只用 mysql 。(又不是不能用,凭啥让我多学一个数据库。)
    me1onsoda
        82
    me1onsoda  
       5 天前
    无脑 pg 就完了
    rlds
        83
    rlds  
       5 天前
    没啥理由,我选 PG
    dwu8555
        84
    dwu8555  
       5 天前
    pg

    用过 pg+citus 你就懂了,处理大数据分片很方便,也不需要额外引入一个 TiDB 。
    处理 GIS 又有 PostGIS ,各种空间几何运算,很方便。
    june4
        85
    june4  
       5 天前
    我是全用 mysql ,只是因为之前学的就是这个。
    但已经明显感受到 mysql 的功能有点力不从心,如果重头开始的话,我会选 pg 。
    yinxs2003
        86
    yinxs2003  
       5 天前
    无脑 mysql ,真出问题,那帮吹 pg 的,又不会来帮你搞
    yplam
        87
    yplam  
       5 天前 via Android
    选择 pg 因为支持向量运算,做相关推荐之类的功能很方便
    dragondove
        88
    dragondove  
       5 天前
    @securityCoding pg 的源码写的好,易读易修改
    ala2008
        89
    ala2008  
       5 天前
    pg 很强大,扩展插件很方便
    ala2008
        90
    ala2008  
       5 天前
    @mmmhhhddd 集群方案是啥,pgpool ?
    dmanbu
        91
    dmanbu  
       5 天前
    pg 对运维极不友好
    Jinnrry
        92
    Jinnrry  
       5 天前
    @cooltechbs 因为国内 mysql 的 DBA 多,好招人
    adoal
        93
    adoal  
       5 天前
    用小地瓜上的说法:你这样不负责任地起号,你浮木知道吗?
    tracebundy
        94
    tracebundy  
       5 天前
    必须 MySQL , pg 和 mysql 占有率不是一个量级的
    wdhwg001
        95
    wdhwg001  
       5 天前
    pg ,说实话 my 会死锁这个设计始终非常弱智,但是 pg 的 vacuum 有时候有写入性能和占用空间的坑,上个透明压缩会好很多。
    Zakl21
        96
    Zakl21  
       5 天前   ❤️ 2
    讲一个事情,500w 级别的表数据,三表联查,pg 毫无压力,mysql cpu,内存打满,响应是六七倍的耗时。。。
    zhouyin
        97
    zhouyin  
       5 天前
    @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  
       5 天前
    都用到啥 memory 了,用 redis 吧
    edisonwong
        99
    edisonwong  
       5 天前
    有足够技术自信 、 有用到 pg 特性而 mysql 没有的、对性能有要求的, 三者符合一个选 pg ,其余情况用 mysql
    18500592934
        100
    18500592934  
       5 天前
    我们项目中用到了 pg 做归档,好几年了,我翻代码从来没有触碰过这一块,所以稳定性上还是不错的。
    坐等大佬发言,学习下;
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2832 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 14:45 · PVG 22:45 · LAX 06:45 · JFK 09:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.