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

Postgres 在中国还能起来么?

  •  
  •   danielxuforever · 2024-01-23 19:45:05 +08:00 · 21641 次点击
    这是一个创建于 375 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天,搜索了一下 PG 和 MySQL 为什么在中国市场差这么多( 10 被)的原因,主要有:
    * 当年 pg 刚开始没有支持 windows 让 mysql 抢了先机
    * 一直以来的进程模型,占内存比较多
    * 虽然啥都可以做,但是也就意味着更多要学,但是一般人谁爱学习啊,打工人都想完成了就行,主管也不看你这些东西,只看对业务带来了什么

    总结下来

    PG 因为初期策略,失去了先机,那大家觉得它还能翻身么?
    159 条回复    2024-01-26 00:36:43 +08:00
    1  2  
    magiclz233
        101
    magiclz233  
       2024-01-24 10:58:41 +08:00
    公司产品已经从 MySQL 全部切换到 PG 了,现在是 MySQL 和 PG 都支持但是默认是 PG ,PG 性能好点,另外国产的数据库基本都是 PG 魔改的,信创什么的无缝衔接了
    littlewing
        102
    littlewing  
       2024-01-24 11:02:54 +08:00 via iPhone
    国内很多做自研数据库的都是用 pg 魔改的
    raptor
        103
    raptor  
       2024-01-24 11:10:45 +08:00
    @danielxuforever 坐等信创了
    dbskcnc
        104
    dbskcnc  
       2024-01-24 11:20:53 +08:00
    只用 pg 的路过,支持 windows 确实是一大要求,我们原来就是 sql server, 从 pg 支持 windows 后就切过来了,中小应用就是省心,pg 从来没出过问题。
    其实上面也说了信创很多是 pg 衍生,从这个角度看,pg 未必少那么多
    lugoyoung
        105
    lugoyoung  
       2024-01-24 11:31:31 +08:00
    阿里的 hologres 也是基于 pg
    encro
        106
    encro  
       2024-01-24 11:32:06 +08:00
    @danielxuforever

    切换原因是新项目,而且多个地方需要 olap 的功能,等 pg 物理视图出来,也许能打死一遍。。。。
    所以先搞上了。。。


    总而言之就是小公司,就几亿数据也不想分库分表,也不愿意出机器费,还想各种报表,就什么省怎么搞吧。
    Vonng
        107
    Vonng  
       2024-01-24 12:10:06 +08:00   ❤️ 2
    至少可以解决 MySQL 正确性惨不忍睹的问题 https://mp.weixin.qq.com/s/gQZ3Q5JKV8gaBNhc1puPcA
    amon
        108
    amon  
       2024-01-24 12:13:03 +08:00
    不能,名字不好读。
    phli
        109
    phli  
       2024-01-24 12:16:08 +08:00
    现在中大项目基本用 pg ,已经多于 mysql 了,国产数据库大部分基于 pg 的,pg 的性能也比 mysql 强。
    Bluecoda
        110
    Bluecoda  
       2024-01-24 12:33:37 +08:00
    我所在的国外小公司,用 PG 都十几年了,我从 2011 年之后几乎就没用过 mysql 了,都是 PG 。一直用得很舒服,性能也很好,十几年前早早就有了数组,hstore 等支持,那时候也是因为这个换到 PG ,然后就一直用下来了
    paradox2023
        111
    paradox2023  
       2024-01-24 12:48:08 +08:00 via Android
    国产数据库好多都是 pg 内核的
    codingmiao
        112
    codingmiao  
       2024-01-24 13:01:05 +08:00
    @jhdxr 我们有个场景是需要时序和 gis 混合查询的,直接就 timscaledb+postgis 两个插件一装完事了,DB 就天然具备了空间查询和时序查询的能力,如果用其它方案,再起两个中间件,那还要考虑各个中间件数据一致性、跨库查询等问题。
    FightPig
        113
    FightPig  
       2024-01-24 13:34:24 +08:00
    @danielxuforever 契机是因为我们是用 rails 的🐶,然后用久了发现真香,做其它项目也用的 pg ,主要还是习惯了,这东西,还是看你们习惯用哪个顺手,其实用起来都大差不差的。
    yinxs2003
        114
    yinxs2003  
       2024-01-24 13:42:51 +08:00
    数据量小 mysql ,数据量大就上 ES 了,那里有 PG 市场呢。而且很多概念都是 PG 独有的,和其他数据库并不一样。估计推广都困难
    haython
        115
    haython  
       2024-01-24 14:06:09 +08:00
    你承认你的大卡车很厉害,功能强大,但是我只是要拉几个人而已
    Bingchunmoli
        116
    Bingchunmoli  
       2024-01-24 14:27:19 +08:00 via Android
    @me1onsoda 但是开发在 Windows 的不少
    migu
        117
    migu  
       2024-01-24 14:28:17 +08:00
    我以前也都是在用 mysql ,现在不管是个人项目还是公司项目都是 pg
    FlytoSirius
        118
    FlytoSirius  
       2024-01-24 14:30:09 +08:00 via iPhone
    @jhdxr 我说的太绝对, 基本上是 unbuntu/debian 更流行一些, rhel 有更好的企业支持, 也确实是更受大企业欢迎一些
    Bingchunmoli
        119
    Bingchunmoli  
       2024-01-24 14:31:19 +08:00 via Android
    @FlytoSirius 不一定是开发者安全意识不强,是上面也不会给代码重构,安全检查,甚至是性能优化的时间
    FlytoSirius
        120
    FlytoSirius  
       2024-01-24 14:32:05 +08:00 via iPhone
    @jhdxr 关键我想表达的是 国内开发人员整体的信息安全意识比较弱,守在一个 centos7 好多年
    FlytoSirius
        121
    FlytoSirius  
       2024-01-24 14:34:04 +08:00 via iPhone
    @Bingchunmoli 那个“上面” 的决策层大概是更缺乏 信息安全意识
    foshanfuzhuan88
        122
    foshanfuzhuan88  
       2024-01-24 14:56:59 +08:00
    重要吗
    keshawnvan
        123
    keshawnvan  
       2024-01-24 15:01:18 +08:00
    现在用云数据库的话,大多都是兼容 MySQL 或者 PostgreSQL 协议了,实现已经魔改很多了。
    jhdxr
        124
    jhdxr  
       2024-01-24 15:33:09 +08:00
    @FlytoSirius 截止到现在( 2024 年 1 月 24 日),守着 centos7 的确还是安全的。尽管 centos8 提前 EOL 了,但 centos7 依然是按照一开始的承诺提供满 10 年的支持,也就是 EOL 在 2024 年 6 月 30 日。尽管我自己并不认为直到最后一刻才切换是个好习惯,但我也不会认为使用一个还在提供安全支持的系统是不安全的。(只针对系统版本一个点发表的评价)
    danielxuforever
        125
    danielxuforever  
    OP
       2024-01-24 15:38:01 +08:00
    @migu #117 什么原因切换的
    danielxuforever
        126
    danielxuforever  
    OP
       2024-01-24 15:38:36 +08:00
    @foshanfuzhuan88 #122 如果涉及到公司选型,还挺重要的
    FlytoSirius
        127
    FlytoSirius  
       2024-01-24 15:40:25 +08:00
    @jhdxr 根据版本支持时间, 技术上来说, 这么认为也是对的 !!
    KgM4gLtF0shViDH3
        128
    KgM4gLtF0shViDH3  
       2024-01-24 15:41:17 +08:00
    无所谓,反正是 orm ,用哪个都一样。
    ac23
        129
    ac23  
       2024-01-24 16:02:46 +08:00
    @codingmiao 老哥请教一下,PG 加 timscale 插件稳不稳,后续我司也想用用哈哈
    nothingistrue
        130
    nothingistrue  
       2024-01-24 16:27:03 +08:00
    开源数据库用哪个,最重要的不是看它自己的好坏,是看它后面是谁维护的。MySQL 背后是 SUN - Oracle ,PostgreSQL 商业化一直没搞起来,这就已经决定了它们的位置。

    PostgreSQL 好歹还能被人想起来,你看看 MySQL 分裂出去的纯社区版 MariaDB 都没人知道了。
    migu
        131
    migu  
       2024-01-24 16:27:15 +08:00
    @danielxuforever #125 首先一点跟公司相关吧,我们有一些场景会涉及到 gis 和时序数据的,在轻量级场景下使用 pg 是非常方便的。还有就是国外一些开源框架或工具大都使用 pg ,后续根据这些框架做二开也不用在数据库方面去做迁移操作。<br> 从个人体验来看,pg 提供的一些函数或者语法糖我是用的挺舒服的
    nothingistrue
        132
    nothingistrue  
       2024-01-24 16:43:20 +08:00
    @FlytoSirius #120 守着 centos7 那可不是不想用新的,是 centos8 更改了发布方式,从变相免费版的 RHEL ,变成 RHEL 的小白鼠了。你还真以为别人用得是 centos 呀。
    danielxuforever
        133
    danielxuforever  
    OP
       2024-01-24 16:47:40 +08:00
    @jhdxr #59 还是要看业务体量,比如你的业务还没有那么大规模的情况下,pg 足以支撑你了,如果你用其他的,肯定会增加复杂度,不论是运维还是开发
    chaleaochexist
        134
    chaleaochexist  
       2024-01-24 16:56:58 +08:00
    好像是因为中国的 mysql 运维比较多.
    libook
        135
    libook  
       2024-01-24 17:11:12 +08:00
    我们公司的所有数据库已经被几个激进的开发人员全换成了 PG 了,他们坚信 PG 是未来,虽然目前就是普通传统 DBMS 的需求……

    我个人的 homelab 的数据库一半 MariaDB 另一半 PG ,个人感受是 PG 因为较高功能扩展性所带来的复杂度会反映到它的操作复杂度上。比如 schema 是 DB 下的一层,我所遇到的绝大多数应用程序都用不上多 schema 特性,只是用默认的 public schema ,但在权限管理上我必须针对 schema 这一层多做操作。

    对于一些新的系统架构来说,PG 在分布式方面的一些优化确实是可以提效降本的。
    对于一些新的项目来说,PG 也扩展出来了一些衍生版满足特殊需求,比如 AI 项目使用的支持向量的版本。

    我个人的观点是,技术选型应该首先基于严肃考虑过的、当前和近未来的问题和需求,一个技术的流行程度应该是次要的。
    wanniwa
        136
    wanniwa  
       2024-01-24 17:16:39 +08:00
    慢慢老程序员淘汰了,pg 量就上去了
    leeyuzhe
        137
    leeyuzhe  
       2024-01-24 17:18:25 +08:00
    @Shijamlin #78 你们时序用的什么?
    guxin0123
        138
    guxin0123  
       2024-01-24 17:20:55 +08:00
    LAMP => LAPP 感觉怪怪的 🌶🚾
    dog82
        139
    dog82  
       2024-01-24 17:28:20 +08:00
    随着信创和国产数据库的崛起,将来国产数据库是主流
    Narcissu5
        140
    Narcissu5  
       2024-01-24 18:54:48 +08:00
    我第一反应居然是:妈的,又多一门八股要背😭
    国内确实抽象,把 mysql 研究到源代码级别了,也不愿意换条路
    zdl0929
        141
    zdl0929  
       2024-01-24 19:35:10 +08:00
    pg 的好处在于语法校验严格更标准性能会更好,mysql 的好处在于各种语法兼容隐式转换用起来更方便。

    所以我在团队内都是推广 pg ,对产品来说,性能会更好,对开发者来说,提升下大家的编码规范的意识。
    JinTianYi456
        142
    JinTianYi456  
       2024-01-24 20:00:09 +08:00
    mysql 里的 SHOW CREATE TABLE Statement 在 postgresql 里是啥?
    zx900930
        143
    zx900930  
       2024-01-24 20:17:25 +08:00
    @danielxuforever #30 我 13 年左右, 欧洲, 教的直接是 oracle, plsql.
    mysql 只是课外自学内容. 后面 16 年左右出去工作看当地大公司全是一水的 oracle, 小企业就百花齐放.
    jackmod
        144
    jackmod  
       2024-01-24 20:34:46 +08:00
    我们工地为了上微软云就扔掉 oracle 改用 postgres+orafce 了
    而且 pg 还非常适合 docker ,个人开发直接无缝接入
    Braisdom
        145
    Braisdom  
       2024-01-24 20:48:59 +08:00
    我的项目都是 PostgreSQL 了,MySQL 好多年不接触了,Bug 实在太多了,
    我的项目: https://www.agiquery.com
    lloooo
        146
    lloooo  
       2024-01-24 21:29:40 +08:00
    最近两年,我遇到的使用 pgsql 的厂商越来越多了
    roundgis
        147
    roundgis  
       2024-01-24 22:05:11 +08:00 via Android
    @Bingchunmoli pg 在 windows 下運行也沒啥問題 我都見過有好幾個在生產環境用 pg 的
    changdy
        148
    changdy  
       2024-01-25 00:26:46 +08:00
    @yinxs2003 你说错了..其实大部分概念都是 mysql 没有的...
    NXzCH8fP20468ML5
        149
    NXzCH8fP20468ML5  
       2024-01-25 00:40:11 +08:00
    取决于你怎么看信创生态,如果像某些 pg 原教旨主义者,开除国产数据库的 pg 籍,那么永远不可能了。
    如果把诸多国产数据库视作 pg 的分支,那么还有可能。
    NXzCH8fP20468ML5
        150
    NXzCH8fP20468ML5  
       2024-01-25 00:51:37 +08:00
    另外 pg 本身也有一大堆问题,32xid 解决了么? vacuum 解决了么? wal 膨胀问题解决了么?进程模型什么时候能换成线程啊? DIO 什么时候能用啊?能支持索引表么?
    啊,都没解决,说个锤子。我们还是来看看 neon ,orioledb 吧,这个饼有大又香
    cxzlhr
        151
    cxzlhr  
       2024-01-25 09:09:09 +08:00
    我们公司说 PG 没几个人知道的,就我自己用,没办法推广
    dc2002007
        152
    dc2002007  
       2024-01-25 09:21:16 +08:00
    国内的圈子守旧派占主流,所以起来的慢也能理解,毕竟为了继续使用 java8 ,各大厂的守旧派也拿来自己维护了很多版本,做程序还不要守旧的好。
    LindsayZhou
        153
    LindsayZhou  
       2024-01-25 09:27:42 +08:00
    @jhdxr #59 楼上已经说了,能够尽量少用一些组件。

    另外对于 「为啥放着 S3 不用要去存 DB 」,因为有些场景 DB 比 S3 更快和更方便。
    sqlite 的 benchmark 表示,对于 10kb 大小的文件,存 blob 比文件系统快 35%
    https://www.sqlite.org/fasterthanfs.html
    yinxs2003
        154
    yinxs2003  
       2024-01-25 15:28:38 +08:00
    @changdy 主要 pg 的那些概念在 mongo 、es 、hive 上也没见过,看起来怪怪的。而且随着岁数增长技术显得越来越不重要了(相对的),这种小众的东西是在是提不起兴趣看。
    yinxs2003
        155
    yinxs2003  
       2024-01-25 15:48:36 +08:00
    @dc2002007 说的有点绝对了哈
    adoal
        156
    adoal  
       2024-01-25 20:06:00 +08:00
    @yinxs2003 PostgreSQL 和 MySQL 都是关系数据库,个关系数据库,关系数据库,系数据库,数据库,据库,库。 要比也是跟 Oracle 、MS SQL Server 、IBM DB2 、Sybase 以至 SQLite 这些同为关系数据库来比。你拿去跟非关系数据库比,觉得这些非关系数据库没有而 PostgreSQL 有的东西“看起来怪怪的”而 MySQL 没有则算是正常,这比较实在是没比到点上。而 PostgreSQL 有但 MySQL 没有的特性,恰恰在上面说的这些关系数据库系统里大部分也有对应(虽然语法不一定一致)。从这个角度来讲,MySQL 反而是另类。如果实现得比较齐备和规范的关系数据库系统在你眼里是“小众的东西”,那真是隔行如隔山,三观不同无法强融了。
    yinxs2003
        157
    yinxs2003  
       2024-01-25 21:02:17 +08:00
    @adoal 对对对,你说的对
    adoal
        158
    adoal  
       2024-01-25 21:13:47 +08:00
    @yinxs2003 这样阴阳怪气就没意思了。
    changdy
        159
    changdy  
       2024-01-26 00:36:43 +08:00
    @adoal 哈哈哈 感觉到一些无奈了 ... 不过 pg 的确也有一些他的不足 .
    @xxfye 大兄弟举得例子是比较合适的 也是 pg 需要解决的. 其他的人感觉对 pg/mysql 的差别 了解的都比较少..
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1937 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:00 · PVG 16:00 · LAX 00:00 · JFK 03:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.