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

就想问问多少人知道 PostgreSQL ?

  •  
  •   dhysum · 2020-11-27 16:06:21 +08:00 · 10633 次点击
    这是一个创建于 1455 天前的主题,其中的信息可能已经有所发展或是发生改变。

    说到关系型数据库,很多人就会说 MySQL 。其实严格来讲,MySQL 5.6 以前都不像一个严谨的关系型数据库,5.7 、8.0 之后虽有改观,但相比 PostgreSQL 、Oracle 、SQLServer 其实还有距离。

    当然现实情况是,国內大家都比较熟悉 MySQL,虽然 DBEngine 上的排名显示 PostgreSQL 与 MySQL 的比例已经从前两年的 1:5 到了现在的 1:2.x 。

    这里就想做个简单的调研,有多少人知道或者用过 PostgreSQL ?

    78 条回复    2022-12-16 11:51:29 +08:00
    yingtaop
        1
    yingtaop  
       2020-11-27 16:09:18 +08:00
    一直在用,搞 IOT
    dhysum
        2
    dhysum  
    OP
       2020-11-27 16:11:26 +08:00
    @yingtaop 哪些特性用得比较多些? IoT 的话,JSON 、timescaleDB 可能会比较有用
    MonoBiao
        3
    MonoBiao  
       2020-11-27 16:12:23 +08:00
    PostgreSQL 很多人用吧?感觉没有这么小众
    dhysum
        4
    dhysum  
    OP
       2020-11-27 16:13:49 +08:00
    @MonoBiao 就接触来看,很多传统行业用得其实挺多的;互联网圈的话,感觉还是 MySQL 多些,导致声音上会多些
    Ansen
        5
    Ansen  
       2020-11-27 16:21:47 +08:00
    习惯 mysql 了,pg 用得很少
    sfz97308
        6
    sfz97308  
       2020-11-27 16:36:25 +08:00
    知道而且用过
    0x663
        7
    0x663  
       2020-11-27 16:38:37 +08:00
    PostgreSQL 大写是个坑
    levon
        8
    levon  
       2020-11-27 16:40:51 +08:00 via iPhone   ❤️ 14
    这里应该问多少人不知道
    mengxin39
        9
    mengxin39  
       2020-11-27 16:43:34 +08:00
    今年接触刚开始觉得很坑 加上时序的一个插件数据查询速度确实提高了不少
    nuk
        10
    nuk  
       2020-11-27 16:44:52 +08:00
    公司以前用 pg,不过不知道为什么很久以前就转到 mysql 了
    Javabus
        11
    Javabus  
       2020-11-27 16:50:52 +08:00
    pgsql 应该是那三个之后用的最多的了
    aegon466
        12
    aegon466  
       2020-11-27 16:52:54 +08:00
    这知道的不少吧 我做项目都是首选 pgsql 比 mysql 好用
    Tink
        13
    Tink  
       2020-11-27 16:57:18 +08:00 via Android
    应该开发都知道吧。。。。。
    joyhub2140
        14
    joyhub2140  
       2020-11-27 17:00:47 +08:00
    虽说 pg 项目优秀,但 mysql 用的人超级多,人均花在 mysql 的时间也多,网上大把学习资料,踩坑分享,解决方案也多,用的人自然就越来越多,基本上新手入门 mysql 靠搜索引擎都能用的很好,其实这是一个历史遗留问题。
    boris93
        15
    boris93  
       2020-11-27 17:07:31 +08:00 via Android
    只自己随便玩过,没深入了解
    公司用的分别是 MySQL,Oracle,Google Spanner
    liprais
        16
    liprais  
       2020-11-27 17:07:36 +08:00
    @joyhub2140 哈哈用的很好?
    勉强能跑还差不多
    natashahollyz
        17
    natashahollyz  
       2020-11-27 17:11:25 +08:00
    mysql 随便一个 vps 都能跑
    Cbdy
        18
    Cbdy  
       2020-11-27 17:12:12 +08:00 via Android
    Heroku 的免费 Postgre 还行
    westoy
        19
    westoy  
       2020-11-27 17:13:42 +08:00
    早年 mysql 3.x 、4.0x 主流各种不支持的时候, 很多 cp 主机都预装 postgresql 和 mysql 的

    然后 pg 有几年整个好像死了一样, 类似的还有 freebsd........直接送了人头.......
    singerll
        20
    singerll  
       2020-11-27 17:14:23 +08:00 via Android
    pg 的 linix 部署,库、角色啥的对新手很不友好,工作一两年的基本上都得一两周看懂,注定了小公司不会用,关键是现在小公司真的多。


    顺便吐槽一下,mysql8 以前连开窗函数都没有
    lplk
        21
    lplk  
       2020-11-27 17:14:54 +08:00
    @Tink #13 我之前面试,面试官不知道。。。
    lower
        22
    lower  
       2020-11-27 17:16:28 +08:00
    好是好,就是名字太长了……
    msg7086
        23
    msg7086  
       2020-11-27 17:18:46 +08:00
    pg 我用过一段时间,折腾了很久,用得脑阔疼。
    因为接手的一个外包项目是用的 pg,无奈去碰的。
    做 replication 也是研究了好久才弄出来。

    现在是打死了不碰的,我 MySQL 系用起来熟悉很多,平时主要用 Percona 。
    Tink
        24
    Tink  
       2020-11-27 17:19:09 +08:00
    @lower #22 是的,知道的人不少,能念对的真不多
    woshiaha
        25
    woshiaha  
       2020-11-27 17:41:56 +08:00
    业界苏宁 腾讯 阿里都有 PG 的研发部门吧 我司也在搞 因为 PG 开源协议友好 Oracle 收费就不说了 Mysql 自从被收购以后也有未来的风险存在 不过 PG 的资料是真的少 搞个高可用方案一搜没几篇文章 开源组件也少 真的头痛
    hws8033856
        26
    hws8033856  
       2020-11-27 17:54:29 +08:00
    没吃过猪肉还没见过猪跑么
    pgsql 易用性上不如 mysql,我也只是因为 GIS 需要跑 pgrouting 的一些空间分析函数才用 pgsql 的
    等哪天有空了把那些方法全都改到 mysql
    felixin
        27
    felixin  
       2020-11-27 18:14:44 +08:00 via Android
    性能对比 mysql 更好吧?
    wtks1
        28
    wtks1  
       2020-11-27 18:18:49 +08:00 via Android
    知道,但 mysql 部署起来更方便快捷...
    chawuchiren
        29
    chawuchiren  
       2020-11-27 18:34:58 +08:00
    因为用了 spring webflux,才接触到 pg
    roth
        30
    roth  
       2020-11-27 19:51:49 +08:00
    不上内存数据库的前提下,mpp 架构的 pg 或者 gp (我用 greenplum 比较多)就是大数据量下性价比最高的选择,又便宜,增加节点后性能和容量都线性提升,高可用也可靠,数据批量装载速度也不错,新增函数也简单
    des
        31
    des  
       2020-11-27 20:33:44 +08:00
    @natashahollyz PostgreSQL 占用更低
    MoccaCafe
        32
    MoccaCafe  
       2020-11-27 20:58:24 +08:00
    PostgreSQL 的缺点:
    1,没有 show create table/show tables/show database/show variables 等方法,你要找这张表有多少列,有点麻烦,可以说对开发人员很不友好(学院派)
    2,不能跨库查询,如果 PostgreSQL 数据文件完全损坏,那真的就是损坏了
    3,资源少,解决方案少,你要找监控方案很费劲,更不用小众的监控软件了,人家支持 MySQL,而 PostgreSQL 只是顺带支持
    tlday
        33
    tlday  
       2020-11-27 21:15:52 +08:00
    我大概是个异类,MySQL 我不太懂,我一直用的 Postgres...
    arischow
        34
    arischow  
       2020-11-27 21:21:07 +08:00
    我大概是个异类,MySQL 我不太懂,我一直用的 PostgreSQL...
    levelworm
        35
    levelworm  
       2020-11-27 21:41:23 +08:00 via Android
    好像北美这边用 pg 的比例大一些,看大家的讨论有感。mysql 之前连窗口函数都没有,不知道大家怎么过来的。。。
    hoyixi
        36
    hoyixi  
       2020-11-27 21:44:30 +08:00
    多年前开始个人项目一直用 PG,个人项目从没用过 MySQL 。 没什么高大上理由,最初理由很简单:省资源省钱( VPS )
    Orenoid
        37
    Orenoid  
       2020-11-27 21:52:31 +08:00
    问多少人用过比较合理,问多少人知道有点离谱了……
    ijk0
        38
    ijk0  
       2020-11-28 00:30:06 +08:00 via iPhone
    该问谁不知道 pg 吧...
    PonysDad
        39
    PonysDad  
       2020-11-28 00:43:48 +08:00 via iPhone
    正在用着。。。
    每天都在祈祷不要出毛病。因为尼玛的资料忒少。
    chaleaoch
        40
    chaleaoch  
       2020-11-28 01:09:32 +08:00
    小日本公司喜欢用 PG 可能因为 mysql 呗 Oracle 收购了吧?

    mysql 用的越来越少了, 就算用也是 mariadb
    yeqizhang
        41
    yeqizhang  
       2020-11-28 01:14:02 +08:00 via Android
    pg 不是号称世界上最先进的开源关系数据库吗

    还有不知道的?
    hooopo
        42
    hooopo  
       2020-11-28 01:33:22 +08:00
    我大概是个异类,MySQL 我不太懂,我一直用的 PostgreSQL
    Keyes
        43
    Keyes  
       2020-11-28 01:37:45 +08:00 via iPhone
    mysql 和 postgre 最大的区别是

    可以出口伊朗( 2333 )
    Visitor233
        44
    Visitor233  
       2020-11-28 10:12:21 +08:00
    因为看到对高并发友好,我司开方平台项目就开始改用 pgsql
    dbskcnc
        45
    dbskcnc  
       2020-11-28 10:30:16 +08:00
    只用 Pg 的路过,9.0 到现在没变过
    suotm
        46
    suotm  
       2020-11-28 10:42:00 +08:00
    我大概也是个异类,MySQL 我不太懂,我一直用的 PostgreSQL
    u823tg
        47
    u823tg  
       2020-11-28 11:11:12 +08:00 via Android
    大概自己玩省内存所以选择 pg
    hantsy
        48
    hantsy  
       2020-11-28 11:22:00 +08:00
    @dhysum 我想知道做开发的有多少人不知道 PG 。。。
    FaiChou
        49
    FaiChou  
       2020-11-28 12:58:06 +08:00
    我做前端的(现在不做了)都知道 PostgreSQL
    micean
        50
    micean  
       2020-11-28 13:26:43 +08:00
    @liushaokang

    哈哈,所以我现在做数据库设计全部小写了
    laminux29
        51
    laminux29  
       2020-11-28 15:47:14 +08:00   ❤️ 1
    PostgreSQL 这玩意用之前,建议还是先调研一下功能。

    我不用它的原因是,都什么年代了,连内存表都不支持。

    你要是有空,把 Mysql 、PostgreSQL 、MSSQL 的功能全调研一遍后,你会发现,Oracle 贵是有贵的道理。
    JCZ2MkKb5S8ZX9pq
        52
    JCZ2MkKb5S8ZX9pq  
       2020-11-28 15:52:03 +08:00
    一开始装 MySQL 一直出错,直接走向了 mongodb 。。。
    ZHenJ
        53
    ZHenJ  
       2020-11-28 16:07:13 +08:00
    我厂搞大数据是 SAS 里面用 PostgreSQL
    neoblackcap
        54
    neoblackcap  
       2020-11-28 16:50:27 +08:00 via iPhone
    @chaleaoch 不是,因为富士通在 pg 那边有投入,日本人更加熟悉 pg
    musi
        55
    musi  
       2020-11-28 17:41:44 +08:00
    知道是知道,也有过了解,但基本上没用过
    真做项目关系型数据库直接 MySQL 了,非关系型数据库直接 MongoDB
    DoctorCat
        56
    DoctorCat  
       2020-11-28 21:10:18 +08:00
    PostgreSQL 是个坑。坚持用 MySQL 身体很舒适。
    secondwtq
        57
    secondwtq  
       2020-11-29 01:07:49 +08:00   ❤️ 1
    做个 TIOBE 式的统计吧,对象是 Reddit 不同频道的 Google 搜索结果数目:

    差不多的:
    mysql site:reddit.com/r/programming - 1900
    postgresql site:reddit.com/r/programming - 2210

    postgresql site:reddit.com/r/freebsd - 264
    postgresql site:reddit.com/r/freebsd - 250

    mysql site:reddit.com/r/openbsd - 20
    postgresql site:reddit.com/r/openbsd - 21

    mysql site:reddit.com/r/javascript - 549
    postgresql site:reddit.com/r/javascript - 404

    mysql site:reddit.com/r/cpp - 69
    postgresql site:reddit.com/r/cpp - 41

    mysql site:reddit.com/r/vim - 61
    postgresql site:reddit.com/r/vim - 41

    mysql site:reddit.com/r/sql - 8740
    postgresql site:reddit.com/r/sql - 8690

    postgresql ite:reddit.com/r/Database - 3440
    mysql ite:reddit.com/r/Database - 3220

    MySQL 占明显优势的:
    mysql site:reddit.com/r/compsci - 100
    postgresql site:reddit.com/r/compsci - 27

    mysql site:reddit.com/r/ruby - 1650
    postgresql site:reddit.com/r/ruby - 1030

    mysql site:reddit.com/r/vscode - 209
    postgresql site:reddit.com/r/vscode - 162

    mysql site:reddit.com/r/java - 1800
    postgresql site:reddit.com/r/java - 690

    mysql site:reddit.com/r/rust - 2520
    postgresql site:reddit.com/r/rust - 694

    mysql site:reddit.com/r/csharp - 1550
    mysql site:reddit.com/r/csharp - 754

    mysql site:reddit.com/r/golang - 2750
    postgresql site:reddit.com/r/golang - 653

    mysql site:reddit.com/r/linux - 1020
    postgresql site:reddit.com/r/linux - 315

    mysql site:reddit.com/r/webdev -16800
    postgresql site:reddit.com/r/webdev - 1730

    mysql site:reddit.com/r/php - 5530
    postgresql site:reddit.com/r/php - 337

    PostgreSQL 占明显优势的:
    mysql site:reddit.com/r/fsharp - 6
    postgresql site:reddit.com/r/fsharp - 16

    mysql site:reddit.com/r/ocaml - 4
    postgresql site:reddit.com/r/ocaml - 19

    mysql site:reddit.com/r/coding - 78
    postgresql site:reddit.com/r/coding - 123

    mysql site:reddit.com/r/python - 2860
    postgresql site:reddit.com/r/python - 8670

    mysql site:reddit.com/r/scala - 339
    postgresql site:reddit.com/r/scala - 2040

    mysql site:reddit.com/r/emacs - 75
    postgresql site:reddit.com/r/emacs - 876

    mysql site:reddit.com/r/haskell - 231
    postgresql site:reddit.com/r/haskell - 2610

    (还有个有趣的,不过这个如何解读就不好说了 :P
    mysql site:reddit.com/r/netsec - 452
    postgresql site:reddit.com/r/netsec - 225 )

    几个不分区的社区:
    mysql site:v2ex.com - 28500
    postgresql site:v2ex.com - 3050

    mysql site:csdn.net - 26500000
    postgresql site:csdn.net - 1440000

    mysql site:news.ycombinator.com - 31100
    postgresql site:news.ycombinator.com - 21900

    mysql site:lobste.rs - 481
    postgresql site:lobste.rs - 913
    PopRain
        58
    PopRain  
       2020-11-29 14:10:32 +08:00
    postgresql 到现在大小写不敏感查询都支持的不好,这个是我用 pg 最大的障碍。 (可选方案都不太好用)
    dvaknheo
        59
    dvaknheo  
       2020-11-29 15:11:51 +08:00
    phpmyadmin 太好用了。pg 有没有类似工具

    o 记故意把 mysql 的兼容性弄得乱七八糟的。

    说不定哪一天就不用 mysql 了。
    Kylin30
        60
    Kylin30  
       2020-11-29 22:40:13 +08:00
    你也来网上冲浪啊
    lihongming
        61
    lihongming  
       2020-11-30 02:50:23 +08:00 via iPhone
    两个都在用,但觉得楼主的“不像个严谨的关系型数据库”观点有些舍本逐末。用户要的并不是关系型数据库本身,而是关系型数据库的优点,所以只要实现了那些优点就可以了,其它无所谓的。多数情况下,特别教条反而会带来不便,我想这也是 MySQL 流行的一个原因吧。
    Aeoluze
        62
    Aeoluze  
       2020-11-30 09:51:02 +08:00
    有多少人没用过 Postgres ?
    Dganzh
        63
    Dganzh  
       2020-11-30 09:57:35 +08:00
    pg 资料是真的少! MySQL 的一大堆!
    levelworm
        64
    levelworm  
       2020-11-30 10:06:37 +08:00 via Android
    @PopRain ilike 就是大小写不敏感吧。
    PopRain
        65
    PopRain  
       2020-11-30 10:22:08 +08:00
    @levelworm like ilike 业务系统很少会用到,主要还是 = 等比较, 另外,ilike 属于特定预防,ORM 不改造不会自动映射(只会应收到 like ) , 另外 citext 有类似问题,如果参数不加 ::citext 强制转换也搜索不到,这个也要改造 ORM 或者 SQL 语句,不方便。

    虽然一个系统很少切换后台数据库,但是能用标准的语法还是用标准的语法比较好。
    PopRain
        66
    PopRain  
       2020-11-30 10:23:53 +08:00   ❤️ 1
    @levelworm (上面打错了,不知道怎么改)
    like ilike 业务系统很少会用到,主要还是 = 比较, 另外,ilike 属于特定语法,ORM 不改造不会自动映射(只会映射到 like ) , 另外 citext 有类似问题,如果参数不加 ::citext 强制转换也搜索不到,这个也要改造 ORM 或者 SQL 语句,不方便。

    虽然一个系统很少切换后台数据库,但是能用标准的语法还是用标准的语法比较好。
    levelworm
        67
    levelworm  
       2020-11-30 10:43:14 +08:00 via Android
    @PopRain 看来的确和我这种写查询的不一样了,我们对效率不敏感,反正不 hit 生产数据库。。。
    zcsz
        68
    zcsz  
       2020-11-30 11:08:12 +08:00
    GP 数仓,就当它 PG 在用了,出去沟通也说 PG,节省沟通成本,还是有很多人知道的
    darknoll
        69
    darknoll  
       2020-11-30 13:34:47 +08:00
    是很优秀,关键是没多少人用
    就跟 java 和 C#一样
    HolmLoh
        70
    HolmLoh  
       2020-11-30 15:44:40 +08:00
    不懂 MySQL,现在公司正在把 Oracle 转到 PG,新研发的项目都用 pg 了
    jmyz0455
        71
    jmyz0455  
       2020-11-30 16:12:45 +08:00
    听说 PostgreSQL 可以直接输出 API ?
    echowuhao
        72
    echowuhao  
       2020-12-01 11:57:49 +08:00
    @MoccaCafe

    PostgreSQL 的缺点:
    1,没有 show create table/show tables/show database/show variables 等方法,你要找这张表有多少列,有点麻烦,可以说对开发人员很不友好(学院派)

    \d
    \dt
    \l
    echowuhao
        73
    echowuhao  
       2020-12-01 12:00:51 +08:00
    @MoccaCafe

    2,不能跨库查询,如果 PostgreSQL 数据文件完全损坏,那真的就是损坏了

    postgres 里面有 schema 的概念,有点像 mysql 里面的 db 了。就是一个 schema 里面可以有很多表。你把 mysql 里面的不同数据库放到不同 schema 里面,就可以了。

    如果非要跨库,不仅可以跨,还可以跨不同服务器上面的,postgres_fdw 速度会慢一点。
    echowuhao
        74
    echowuhao  
       2020-12-01 12:01:38 +08:00
    @jmyz0455 postgrest 一分钟搭建一个 rest 后端,哈哈。
    MoccaCafe
        75
    MoccaCafe  
       2020-12-01 13:20:08 +08:00 via iPhone
    @echowuhao 你那个\d 只是在命令行里使用,无法像 show create table 一样随时查询,甚至集成到程序里。而 pg 想实现这点,又是 command 又是 shell 的,一点也不优雅
    MoccaCafe
        76
    MoccaCafe  
       2020-12-01 13:22:46 +08:00 via iPhone
    @echowuhao 你说的这个 fdw 也正是我想说的,oracle fdw 之前出现语法不兼容直接报错,而 mysql fdw 时不时断开连接无法请求。需要注意的是,这些 fdw 都不是核心人员开发,都是 github 一些爱好者开发得,换做是你,你敢用非核心的开源 fdw 来替换跨库查询吗?
    连本机跨库查询都这么复杂,难怪 pg 不火。性能虽然好那么一点,但开发起来总是很拉胯的样子
    MoccaCafe
        77
    MoccaCafe  
       2020-12-01 13:24:24 +08:00 via iPhone   ❤️ 1
    所以 pg 就像 wp 一样,看起来好像什么功能都有,但实际每个功能都只是有而已,用起来很拉胯,一点也不贴近码农的实际需求,天天弄些不切实际的
    630071099
        78
    630071099  
       2022-12-16 11:51:29 +08:00
    @secondwtq 好办法,看了下 golang ,的果断 postgresql 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5718 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 01:46 · PVG 09:46 · LAX 17:46 · JFK 20:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.