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

Postgres 在中国还能起来么?

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

    总结下来

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

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


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

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

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

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

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

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

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