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

Postgres 在中国还能起来么?

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

    总结下来

    PG 因为初期策略,失去了先机,那大家觉得它还能翻身么?
    159 条回复    2024-01-26 00:36:43 +08:00
    1  2  
    mantouboji
        1
    mantouboji  
       305 天前
    无所谓
    whileFalse
        2
    whileFalse  
       305 天前 via Android   ❤️ 1
    pg 解决了哪些 MySQL 解决不了的问题?这种问题在中国的那些场景中存在?
    RiddMa
        3
    RiddMa  
       305 天前   ❤️ 1
    MySQL 一直是老大,Postgres 确实是后来居上者,现在生态也很完善了
    https://db-engines.com/en/ranking
    falcon05
        4
    falcon05  
       305 天前 via iPhone
    那肯定是不能
    RiddMa
        5
    RiddMa  
       305 天前
    kuituosi
        6
    kuituosi  
       305 天前
    肯定不是你说的原因,mysql 能够流行是因为运维简单
    LAMP 中的 m 就是 mysql ,够用又简单是 lamp 的特征
    互联网应用的特点要快速开发,lamp 就是借助互联网应用崛起的
    danielxuforever
        7
    danielxuforever  
    OP
       305 天前
    @whileFalse #2 那还是比较多的吧,比如时序,比如向量,比如全文搜索。虽然每项都是只能做到中等,但是对于创业公司来说,在没有验证商业模式的情况下,尽量少用组件,是一件好事
    danielxuforever
        8
    danielxuforever  
    OP
       305 天前
    @mantouboji #1 生态还是很重要,要不然你在做选择的时候,也不太敢用
    danielxuforever
        9
    danielxuforever  
    OP
       305 天前
    @RiddMa #3 嗯,评分一直还行,但是就是体量还是查太多,而且从我的体感来讲,可能永远也追不上了
    danielxuforever
        10
    danielxuforever  
    OP
       305 天前
    @falcon05 #4 赞同
    danielxuforever
        11
    danielxuforever  
    OP
       305 天前
    @kuituosi #6 运维简单怎么讲? 现在 pg 发展到今天,运维应该都还好吧,再加上 docker 啥的支持,运维其实都差不多吧
    mantouboji
        12
    mantouboji  
       305 天前   ❤️ 3
    @danielxuforever 20 年前刚开始玩的时候都尝试了一下。觉得 Pg 各个方面都太装逼了,就没再理睬。怎么最近突然多了一大群形形色色用各种下三滥手段推广 Pg 的?这东西现在活过来不就是因为被“国产”“自主知识产权”看上开始换皮大法了吗?
    DefoliationM
        13
    DefoliationM  
       305 天前 via Android
    一直用的 pg ,MySQL 性能不太行。
    Jinnrry
        14
    Jinnrry  
       305 天前 via Android
    除非迫不得已,才用 pg ,比如做 gis 服务。
    (因为国内 3 万块钱左右,大街上喊一嗓子就能招到一堆资深 MySQL 运维。但是换 PG ,费劲千方百计,请一堆猎头都招不到几个像样的运维)
    june4
        15
    june4  
       305 天前   ❤️ 1
    pg 已经走在逆袭路上了,10 年后再看。
    不会马上逆袭因为现有用 mysql 的公司和项目没动力换,但新人和新公司就不一定了。
    unregister
        16
    unregister  
       305 天前
    国外现在是 pg 更流行,希望能流行起来,我再也不想背 mysql 八股文了。
    zyxk
        17
    zyxk  
       305 天前
    mysql 的 新项目应该也会选择 mysql, 我也是,请问有什么选择 PG 的理由呢?请问

    @june4
    ripperdev
        18
    ripperdev  
       305 天前
    @DefoliationM 有具体场景下的对比数据吗?最近想了解下相关方面的知识。
    suuuch
        19
    suuuch  
       305 天前   ❤️ 1
    pg 用的更多一些,pg 能做的 mysql 也基本上能做,除去细分场景下的特殊要求。这俩区别不会很大。。
    也就是不考虑细分需求的话,肯定选团队熟悉的东西。。。
    这样结果就是 mysql 短期超越很难,但是长期来说不好说。pg 这些年更新了不少新功能,性能上也表现的不错。
    个人对 pg 是持乐观态度。
    me1onsoda
        20
    me1onsoda  
       305 天前
    不支持 Windows 无伤大雅吧。不会有人 Windows 做服务器吧?
    pg 功能有点太多了。。n 多种数据类型。。各种花里胡哨的索引。。
    MySQL 认贼作父后就有点摆烂了吧,再加上好像国产信创好像只能用 5. 7 ?那国内肯定考虑开源更活跃的 postgres
    stimw
        21
    stimw  
       305 天前   ❤️ 1
    我学数据库那会儿上课就是用 pg 教的,再后面学数据库实现的时候还是用 pg 的源码教的。

    vercel 提供的 serverless 数据库也是 pg 。

    我对 mysql 反而很陌生。。
    realNewBee
        22
    realNewBee  
       305 天前
    如果只对比 pg 和 MySQL ,pg 确实要好一点。但是,MySQL 已经够用了,而且基本上大家都在用,在没有什么解决不了的问题的情况下,当然还是首先 MySQL
    danielxuforever
        23
    danielxuforever  
    OP
       305 天前
    @mantouboji #12 我这里并没有推广 pg ,只是真的想了解下,因为我看了太多

    PostgreSQL 获 DB-Engine 2023 年度数据库。StackOverflow 《 2023 技术调查》中,PostgreSQL 超越 MySQL 成为了最受欢迎的数据库

    但是,在我知道的一些数据里,mysql 体量是远远大于 pg 的,10 倍关系
    danielxuforever
        24
    danielxuforever  
    OP
       305 天前
    @Jinnrry #14 是的,而且这个生态问题,感觉无解
    MXMIS
        25
    MXMIS  
       305 天前
    还是有机会的,在 G 端,响应去 O 计划,我们很多库都在从 Oracle 迁移至 PG
    adoal
        26
    adoal  
       305 天前   ❤️ 1
    @me1onsoda 注意他说的是“当年”……在中国互联网早期,很多小站站长都是只会 Windows 的。他们在自己 Windows 台式机上开发完了就直接 ftp 上传到 Windows 虚拟主机(注意是 virtual hosting ,不是虚拟机 virtual machine )。另外,有点搞笑的是,MySQL 里各种不规范的坑,对于那个年代的小站站长们来说反而是容易入门的,比日期是 0000-00-00 ,比如 group by 了但是可以在 select 后面写既不聚合有不在分组中的表达式……这些不规范写法都能通过,很好地适应了互联网草根技术人“管它嬢的规范不规范先跑起来再说,老子没心思去搞你的几范式也顾不上清洗不规范数据”的偏好。
    danielxuforever
        27
    danielxuforever  
    OP
       305 天前
    @MXMIS #25 嗯,公有云和自建确实就没有这么强的动力了
    wangkun025
        28
    wangkun025  
       305 天前
    若干年前也有身边人推广 PG 。其实 Ruby on Rails 社区一直把 PG 作为标准。
    但实际上,我从没在正式项目中使用过。
    suuuch
        29
    suuuch  
       305 天前
    这是 aws 里面对比 pg 和 mysql 的文章。https://aws.amazon.com/cn/compare/the-difference-between-mysql-vs-postgresql/

    然后对于 pg 和 mysql 来说,我在部分场景下,有发现老版本的 mysql 不严谨的地方,比如说数据类型太多,pg 的数据类型很单一很明确,减少了混淆的可能。例如 pg 的 text 和 mysql 的各种 text 的区别。。

    再就是数据库字符集的问题,pg 默认是 utf8 ,mysql 里面的则需要自己改成 utf8 ,而且 utf8 还分了好几个类别。。。
    danielxuforever
        30
    danielxuforever  
    OP
       305 天前
    @stimw #21 一看就是国外上课,pg 在国外还是用的比较多的
    danielxuforever
        31
    danielxuforever  
    OP
       305 天前
    @RiddMa #5 我在想这个调研的大多是外国人,所以并不符合国内的情况
    danielxuforever
        32
    danielxuforever  
    OP
       305 天前
    @suuuch #29 嗯,看下来,pg 更完善,但更复杂,更不好入门。国内开发还是本着能用就行。所以不太会有变化。就好比 elixir ,erlang 这些语言,在中国不会起来一样。甚至 ruby 也慢慢没落。
    zed1018
        33
    zed1018  
       305 天前
    我觉得还是有希望的,我在某国企,我们自己虽然一直用的 mysql ,但是最近接触了一个新项目他们就用的 postgres
    frankies
        34
    frankies  
       305 天前   ❤️ 1
    会的,先把我们这批程序员淘汰了之后应该就差不多了。
    danielxuforever
        35
    danielxuforever  
    OP
       305 天前
    @frankies #34 哈哈哈,那就是 10 年
    danielxuforever
        36
    danielxuforever  
    OP
       305 天前
    @zed1018 #33 因为什么而用?细分领域么?比如时序,或者向量
    Soar360
        37
    Soar360  
       305 天前
    电商行业,已经用了好多年 PG 了,非常香。
    skiy
        38
    skiy  
       305 天前 via iPhone
    一直想用,但又一直不敢用。因为不熟悉。
    如果要推广 pg ,首先要让中小网站 cms 用起来,把量拉起来。
    就像 vue ,很多那些后端模板脚手架开箱即用。
    GeekGao
        39
    GeekGao  
       305 天前
    @me1onsoda 信创相关的数据库也有基于 pg 的了…
    coolair
        40
    coolair  
       305 天前
    早就起来了,人大金仓就是 PG 改的。
    est
        41
    est  
       305 天前
    pg 没流行起来是因为没有 phpmyadmin 一类的管理面板。
    june4
        42
    june4  
       305 天前
    @zyxk 我没用过 pg ,只是大概看了下文档,感觉比 mysql 更专业,功能更全面。
    另外 mysql 感觉不是正经开源项目,被 oracle 把持,mariadb 之类的技术实力又一般,以后走成什么样不好说,但 pg 的开源是踏实的。
    skiy
        43
    skiy  
       305 天前 via iPhone   ❤️ 1
    @est https://www.pgadmin.org 了解一下。
    nong99
        44
    nong99  
       305 天前 via iPhone   ❤️ 1
    Delphi 还能起来吗?( Pascal )
    mengzhuo
        45
    mengzhuo  
       305 天前
    还好吧,菊花内部就用了不少。
    lstz
        46
    lstz  
       305 天前
    虽然我以前也是个 pg 吹,但真正做项目的时候,时间太赶了,没有太多试错成本给我


    如果我能在传统校企项目里,学术氛围浓厚的环境,能让我慢下来开发,那我绝对会选 pg ,因为它的设计理念就如 BSD 一样,稳!
    fy
        47
    fy  
       305 天前
    啊?翻身??那我一直用的是什么?
    另外提醒楼主,国内很多数据库是基于 PG 改的,如果想做国产化兼容会比较省力
    akira
        48
    akira  
       305 天前
    公司里面 100 个人,有 99 个熟练使用 mysql ,2 个用过 pg ,你怎么选嘛
    Nnq
        49
    Nnq  
       305 天前 via Android
    都一样 现在反而 o 家开始推 mysql as a service 云服务了
    danhahaha
        50
    danhahaha  
       305 天前   ❤️ 4
    @mantouboji PG 还用推广么?这话十分搞笑了,比如一个人说苹果手机好用,然后你说他推广苹果手机
    zjp
        51
    zjp  
       305 天前
    @danielxuforever #7 但是又多了开发运维成本,中小公司随大流选型更稳
    Lockroach
        52
    Lockroach  
       305 天前
    有一说一,现在国企相关的用的反而是 pg ,因为 mysql 不算开源,开源的关系型数据库就用 pg 了
    hlwjia
        53
    hlwjia  
       305 天前
    @suuuch utf8mb4 hahhahahah
    mantouboji
        54
    mantouboji  
       305 天前
    @danhahaha 不知道。记得几个月前看到过一场闹剧,几个人为了推广 Pg ,在视频会议上吵架,引用一些很不靠谱的所谓“搜索热度”数据作为论据云云,总之看上去很恶臭。

    大概你是高等华人,没看到过这些脏东西吧。
    min
        55
    min  
       305 天前
    真用么不会用不敢用,问么天天问起不起得来
    inframe
        56
    inframe  
       305 天前
    人大金仓就是套皮 pg 呀,这不挺卖钱(狗头
    dayeye2006199
        57
    dayeye2006199  
       305 天前 via Android   ❤️ 1
    感觉起不来。国内技术风格的定义几家大公司影响力巨大,你看看祖传的 Java 的一些规范,关系型数据库从不用外键的实践,都是从某里过来的。好多打工人也没理解,用就是了。谈场景就是百万并发,秒杀,得到 pg 不适合的结论,仿佛整个互联网都在做电商。
    这个情况不变化,流行不起来。

    国外创业公司用 pg 是真的合适,一个数据库性能过关,支持语法标准,功能又很丰富,插件生态也好,开源社区活跃,运维都是 hosted 说实话除了设置个备份没什么太多工作。实在不知道有什么理由不用它
    FightPig
        58
    FightPig  
       305 天前
    用了好多年 pg 了,好用的很,
    jhdxr
        59
    jhdxr  
       305 天前   ❤️ 2
    @danielxuforever #7 就你说的『比如时序,比如向量,比如全文搜索』这三个场景,但凡我真的有这方面的需求我绝对不会想要用 pgsql 去做。 就像数据库能存文件吗?能。但我为啥放着 S3 不用要去存 DB ?
    验证商业模式并不必然要求少用组件。恰恰相反,选择在对应领域领先的组件才是减少风险的方案。
    imydou
        60
    imydou  
       305 天前
    10 年前只知道 lamp wamp
    VforVendetta
        61
    VforVendetta  
       305 天前
    用习惯了 mysql
    FlytoSirius
        62
    FlytoSirius  
       305 天前   ❤️ 2
    PG 已经被国外公认是目前最先进的开源数据库了.
    PG 把很多过去 Oracle 之类才有的企业数据库做到了开源领域, 很棒.

    用 还是 不用, 更多是开发者群体的习惯, 就像国内现在仍然最广泛使用的 centos7 一样 ...
    国际上大都是 Ubuntu, 而且还是跟着最新版走的, 国内在这方面很守旧.

    其实 还有个大问题是, 国内开发人员信息安全意识不强, 对所用基础平台软件版本严重滞后带来的 安全隐患 很少有此方面的意识.
    国际上, 跟进新版本很大一方面是 安全补丁方面的考虑
    FlytoSirius
        63
    FlytoSirius  
       305 天前
    包括 MySQL, 中小项目至今很多也仍然用的是老版本, 就因为开发团队用熟那个版本了 ....
    placeholder
        64
    placeholder  
       305 天前
    起不起得来不知道,但是我个人还是很喜欢 pgsql 的,虽然至今也没记住全称
    shinession
        65
    shinession  
       305 天前
    公司内部项目, 一开始选数据库的时候 mysql pg 都有尝试, 全部默认设置, 没有索引, 500 万的数据量查询 pg 速度比 mysql 快几十倍, 所以个人觉得 pg 才是小白应该选的吧
    ice2016
        66
    ice2016  
       305 天前
    肯定可以。
    国内不少公司在用。
    iseki
        67
    iseki  
       305 天前 via Android   ❤️ 1
    我这的东西能被我换成 PostgreSQL 的都被我换成 PostgreSQL 了,MySQL 的各种蛋疼问题太麻烦了,糟糕的全文搜索,糟糕的 join ,糟糕的事物隔离,糟糕的数据类型(别的可以不提,就时间类型就够蛋疼),糟糕的排序(第一次见到排序内存不足会报错的)。其他高级特性就不说了,像递归 CTE 这种东西本来也很少用。
    leohuangsulei
        68
    leohuangsulei  
       305 天前
    mysql 存带时区的时间就有坑
    murmur
        69
    murmur  
       305 天前
    国产数据库一水 postgres 打底,华为的高斯 db 就是 postgres
    i8086
        70
    i8086  
       305 天前
    信创的数据库很多一开始都是基于 pg ……
    hoopz
        71
    hoopz  
       305 天前
    @Lockroach 确实,mysql connector 不是商业友好的协议。
    cslive
        72
    cslive  
       305 天前
    @me1onsoda #20 怪不得只能用 5.7 ,难用死了
    iFerrari860
        73
    iFerrari860  
       305 天前   ❤️ 1
    mysql 项目转 pg,挺痛苦的,特别是很多函数转换。。还有 group by 。。别提多恶心。。
    wxw752
        74
    wxw752  
       305 天前
    没有遇到需要更换的场景呀,mysql 配合数仓足以满足场景需求了。
    gimp
        75
    gimp  
       305 天前   ❤️ 1
    翻身不翻身都不影响它是个优秀的数据库...
    afeiche
        76
    afeiche  
       305 天前
    我们都是看 dba 的,dba 说只能支持 mysq ,我也不能拿 pg 去搞啊
    loolac
        77
    loolac  
       305 天前
    要想快速发展,入门要简单。一般来说熟悉了一种可用的数据库,在项目开发时很难去下决定选择一种不太熟悉的。
    Shijamlin
        78
    Shijamlin  
       305 天前
    我们公司是个小公司,关系数据库用的一直是 pg ,倒是时序数据库一直在换
    popil1987
        79
    popil1987  
       305 天前
    平常开个 postgres 的 docker 也就 50M 内存,并且由 supabase 和 hasura 这样的外部支持和丰富的扩展,postgres 才是生态更好的吧
    vicalloy
        80
    vicalloy  
       305 天前
    我有个 Wordpress 官方只支持 MySQL 。一个没什么人用的网站,一跑起来就要花掉 3xx M 的内存,即使优化过后也要花掉差不多 200 M 到内存。如果用 Postgres 不需要做啥设置也不到 100 M 。
    注:用 Postgres 要打第三方补丁,存在兼容性问题,只能放弃。
    debuggerx
        81
    debuggerx  
       305 天前
    其实对于新手来说,不考虑中文资料数量,也就是假设是能无障碍阅读英文资料的新人,pg 比 mysql 要简单好用很多……
    encro
        82
    encro  
       305 天前
    我们一直用 mysql ,现在用 pg 。还好还好,逐渐多起来了。
    kuituosi
        83
    kuituosi  
       305 天前
    @danielxuforever mysql 大发展是 20 年前互联网蓬勃发展的时候,简单好用。
    你拿现在的情况跟 20 年前比有啥意义?国内外一众互联网公司用 mysql 这么多年了,你让他们改吗?
    sephiroka
        84
    sephiroka  
       305 天前
    这个需要大厂来带,阿里带个头,马上起来
    danielxuforever
        85
    danielxuforever  
    OP
       305 天前
    @mantouboji #54 嗯,那个闹剧我知道,是一个 pg 的创业公司和头部公司的人吵起来,没有看具体内容,我这里就是单纯的比较疑惑,本身也不带货
    raptor
        86
    raptor  
       305 天前
    mysql 抢占先机的主要原因是:
    早年 PHP 流行时是绑定 MYSQL 的
    其次 MYISAM 时代靠减功能提供了相对比较好的性能

    反正我是 20 年前就看好 PG ,后来才 MYSQL 用得多些,很高兴现在 PG 起来了
    danielxuforever
        87
    danielxuforever  
    OP
       305 天前
    @Soar360 #37 哈哈哈,能否详细聊下感受
    danielxuforever
        88
    danielxuforever  
    OP
       305 天前
    @coolair #40 我是从朋友那里得到一些数据,体量确实是差 10 倍
    jorneyr
        89
    jorneyr  
       305 天前   ❤️ 2
    信创、国产自研数据库:

    - OpenGauss: 基于 PG
    - GaussDB: 基于 PG
    - OceanBase for PG: 基于 PG
    - TDSQL for PG: 基于 PG
    - Kingbase ES: 基于 PG
    - Polar-O: 基于 PG
    - ...
    c2const
        90
    c2const  
       305 天前
    大公司无所谓,怎么折腾都行 :)

    中小公司直接 MySQL 一把梭 :)
    danielxuforever
        91
    danielxuforever  
    OP
       305 天前
    @FightPig #58 哈哈哈,能细聊下使用的契机么?为啥会选择 PG ? 我们一个小公司,最近也是在做调研,想要老板同意 哈哈哈哈
    jhdxr
        92
    jhdxr  
       305 天前
    @FlytoSirius 『国际上大都是 Ubuntu, 而且还是跟着最新版走的, 国内在这方面很守旧.』你的国外具体指的是哪个国家?

    我在国外,合作过的企业无一例外全部是 RHEL ,最新版倒一般的确是最新版的。
    danielxuforever
        93
    danielxuforever  
    OP
       305 天前
    @Shijamlin #78 pg 也可以上 timescale 插件
    danielxuforever
        94
    danielxuforever  
    OP
       305 天前
    @encro #82 哦哦切换的原因是?
    danielxuforever
        95
    danielxuforever  
    OP
       305 天前
    @sephiroka #84 大厂也带不起来,整体还是需要我们用,他们才能起来
    danielxuforever
        96
    danielxuforever  
    OP
       305 天前
    @raptor #86 PG 比之前还是有些起色, 但是整体体量还是比较小
    nekoneko
        97
    nekoneko  
       305 天前
    两个都用过
    个人觉得, PG 比 MySQL 好用太多
    danielxuforever
        98
    danielxuforever  
    OP
       305 天前
    @kuituosi #83 哈哈哈,我没有让他们改哈哈哈,我就想自己改。但是国外确实是首选 PG
    swulling
        99
    swulling  
       305 天前
    现在信创不都是 PostgresSQL 套壳么,从另外一种意义看,MySQL 已经被秒了。
    roundgis
        100
    roundgis  
       305 天前 via Android   ❤️ 1
    @danielxuforever 例如要用 gis 也就只有 pg 可以用了
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2693 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 04:13 · PVG 12:13 · LAX 20:13 · JFK 23:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.