说到关系型数据库,很多人就会说 MySQL 。其实严格来讲,MySQL 5.6 以前都不像一个严谨的关系型数据库,5.7 、8.0 之后虽有改观,但相比 PostgreSQL 、Oracle 、SQLServer 其实还有距离。
当然现实情况是,国大家都比较熟悉 MySQL,虽然 DBEngine 上的排名显示 PostgreSQL 与 MySQL 的比例已经从前两年的 1:5 到了现在 1:2.x 。
这里就想做个简单的调研,有多少人知道或者用过 PostgreSQL ?
![]() | 1 yingtaop 2020-11-27 16:09:18 +08:00 一直在用,搞 IOT |
3 MonoBiao 2020-11-27 16:12:23 +08:00 PostgreSQL 很多人用吧?感觉没有这么小众 |
![]() | 5 Ansen 2020-11-27 16:21:47 +08:00 习惯 mysql 了,pg 用得很少 |
![]() | 6 sfz97308 2020-11-27 16:36:25 +08:00 知道而且用过 |
![]() | 7 0x663 2020-11-27 16:38:37 +08:00 PostgreSQL 大写是个坑 |
8 levon 2020-11-27 16:40:51 +08:00 via iPhone ![]() 这里应该问多少人不知道 |
9 mengxin39 2020-11-27 16:43:34 +08:00 今年接触刚开始觉得很坑 加上时序的一个插件数据查询速度确实提高了不少 |
![]() | 10 nuk 2020-11-27 16:44:52 +08:00 公司以前用 pg,不过不知道为什么很久以前就转到 mysql 了 |
![]() | 11 Javabus 2020-11-27 16:50:52 +08:00 pgsql 应该是那三个之后用的最多的了 |
12 aegon466 2020-11-27 16:52:54 +08:00 这知道的不少吧 我做项目都是首选 pgsql 比 mysql 好用 |
![]() | 13 Tink PRO 应该开发都知道吧。。。。。 |
![]() | 14 nxforce 2020-11-27 17:00:47 +08:00 虽说 pg 项目优秀,但 mysql 用的人超级多,人均花在 mysql 的时间也多,网上大把学习资料,踩坑分享,解决方案也多,用的人自然就越来越多,基本上新手入门 mysql 靠搜索引擎都能用的很好,其实这是一个历史遗留问题。 |
![]() | 15 boris93 2020-11-27 17:07:31 +08:00 via Android 只自己随便玩过,没深入了解公司用的分别是 MySQL,Oracle,Google Spanner |
![]() | 16 F281M6Dh8DXpD1g2 2020-11-27 17:07:36 +08:00 @joyhub2140 哈哈用的很好? 勉强能跑还差不多 |
17 natashahollyz 2020-11-27 17:11:25 +08:00 mysql 随便一个 vps 都能跑 |
18 Cbdy 2020-11-27 17:12:12 +08:00 via Android Heroku 的免费 Postgre 还行 |
![]() | 19 westoy 2020-11-27 17:13:42 +08:00 早年 mysql 3.x 、4.0x 主流各种不支持的时候, 很多 cp 主机都预装 postgresql 和 mysql 的 然后 pg 有几年整个好像死了一样, 类似的还有 freebsd........直接送了人头....... |
![]() | 20 singerll 2020-11-27 17:14:23 +08:00 via Android pg 的 linix 部署,库、角色啥的对新手很不友好,工作一两年的基本上都得一两周看懂,注定了小公司不会用,关键是现在小公司真的多。 顺便吐槽一下,mysql8 以前连开窗函数都没有 |
![]() | 22 lower 2020-11-27 17:16:28 +08:00 好是好,就是名字太长了…… |
![]() | 23 msg7086 2020-11-27 17:18:46 +08:00 pg 我用过一段时间,折腾了很久,用得脑阔疼。 因为接手的一个外包项目是用的 pg,无奈去碰的。 做 replication 也是研究了好久才弄出来。 现在是打死了不碰的,我 MySQL 系用起来熟悉很多,平时主要用 Percona 。 |
25 woshiaha 2020-11-27 17:41:56 +08:00 业界苏宁 腾讯 阿里都有 PG 的研发部门吧 我司也在搞 因为 PG 开源协议友好 Oracle 收费就不说了 Mysql 自从被收购以后也有未来的风险存在 不过 PG 的资料是真的少 搞个高可用方案一搜没几篇文章 开源组件也少 真的头痛 |
![]() | 26 hws8033856 2020-11-27 17:54:29 +08:00 没吃过猪肉还没见过猪跑么 pgsql 易用性上不如 mysql,我也只是因为 GIS 需要跑 pgrouting 的一些空间分析函数才用 pgsql 的 等哪天有空了把那些方法全都改到 mysql |
27 felixin 2020-11-27 18:14:44 +08:00 via Android 性能对比 mysql 更好吧? |
![]() | 28 wtks1 2020-11-27 18:18:49 +08:00 via Android 知道,但 mysql 部署起来更方便快捷... |
29 chawuchiren 2020-11-27 18:34:58 +08:00 因为用了 spring webflux,才接触到 pg |
![]() | 30 roth 2020-11-27 19:51:49 +08:00 不上内存数据库的前提下,mpp 架构的 pg 或者 gp (我用 greenplum 比较多)就是大数据量下性价比最高的选择,又便宜,增加节点后性能和容量都线性提升,高可用也可靠,数据批量装载速度也不错,新增函数也简单 |
![]() | 31 des 2020-11-27 20:33:44 +08:00 @natashahollyz PostgreSQL 占用更低 |
![]() | 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 只是顺带支持 |
![]() | 33 tlday 2020-11-27 21:15:52 +08:00 我大概是个异类,MySQL 我不太懂,我一直用的 Postgres... |
34 arischow 2020-11-27 21:21:07 +08:00 我大概是个异类,MySQL 我不太懂,我一直用的 PostgreSQL... |
![]() | 35 levelworm 2020-11-27 21:41:23 +08:00 via Android 好像北美这边用 pg 的比例大一些,看大家的讨论有感。mysql 之前连窗口函数都没有,不知道大家怎么过来的。。。 |
![]() | 36 hoyixi 2020-11-27 21:44:30 +08:00 多年前开始个人项目一直用 PG,个人项目从没用过 MySQL 。 没什么高大上理由,最初理由很简单:省资源省钱( VPS ) |
![]() | 37 Orenoid 2020-11-27 21:52:31 +08:00 问多少人用过比较合理,问多少人知道有点离谱了…… |
38 ijk0 2020-11-28 00:30:06 +08:00 via iPhone 该问谁不知道 pg 吧... |
39 PonysDad 2020-11-28 00:43:48 +08:00 via iPhone 正在用着。。。 每天都在祈祷不要出毛病。因为尼玛的资料忒少。 |
![]() | 40 chaleaoch 2020-11-28 01:09:32 +08:00 小日本公司喜欢用 PG 可能因为 mysql 呗 Oracle 收购了吧? mysql 用的越来越少了, 就算用也是 mariadb |
41 yeqizhang 2020-11-28 01:14:02 +08:00 via Android pg 不是号称世界上最先进的开源关系数据库吗 还有不知道的? |
![]() | 42 hooopo 2020-11-28 01:33:22 +08:00 我大概是个异类,MySQL 我不太懂,我一直用的 PostgreSQL |
43 Keyes 2020-11-28 01:37:45 +08:00 via iPhone mysql 和 postgre 最大的区别是 可以出口伊朗( 2333 ) |
44 Visitor233 2020-11-28 10:12:21 +08:00 因为看到对高并发友好,我司开方平台项目就开始改用 pgsql |
![]() | 45 dbskcnc 2020-11-28 10:30:16 +08:00 只用 Pg 的路过,9.0 到现在没变过 |
![]() | 46 suotm 2020-11-28 10:42:00 +08:00 我大概也是个异类,MySQL 我不太懂,我一直用的 PostgreSQL |
![]() | 47 u823tg 2020-11-28 11:11:12 +08:00 via Android 大概自己玩省内存所以选择 pg |
![]() | 49 ethusdt 2020-11-28 12:58:06 +08:00 我做前端的(现在不做了)都知道 PostgreSQL |
50 micean 2020-11-28 13:26:43 +08:00 |
51 laminux29 2020-11-28 15:47:14 +08:00 ![]() PostgreSQL 这玩意用之前,建议还是先调研一下功能。 我不用它的原因是,都什么年代了,连内存表都不支持。 你要是有空,把 Mysql 、PostgreSQL 、MSSQL 的功能全调研一遍后,你会发现,Oracle 贵是有贵的道理。 |
![]() | 52 JCZ2MkKb5S8ZX9pq 2020-11-28 15:52:03 +08:00 一开始装 MySQL 一直出错,直接走向了 mongodb 。。。 |
53 ZHenJ 2020-11-28 16:07:13 +08:00 我厂搞大数据是 SAS 里面用 PostgreSQL |
54 neoblackcap 2020-11-28 16:50:27 +08:00 via iPhone @chaleaoch 不是,因为富士通在 pg 那边有投入,日本人更加熟悉 pg |
![]() | 55 musi 2020-11-28 17:41:44 +08:00 知道是知道,也有过了解,但基本上没用过 真做项目关系型数据库直接 MySQL 了,非关系型数据库直接 MongoDB |
![]() | 56 DoctorCat 2020-11-28 21:10:18 +08:00 PostgreSQL 是个坑。坚持用 MySQL 身体很舒适。 |
![]() | 57 secondwtq 2020-11-29 01:07:49 +08:00 ![]() 做个 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:reddt.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 |
![]() | 58 PopRain 2020-11-29 14:10:32 +08:00 postgresql 到现在大小写不敏感查询都支持的不好,这个是我用 pg 最大的障碍。 (可选方案都不太好用) |
![]() | 59 dvaknheo 2020-11-29 15:11:51 +08:00 phpmyadmin 太好用了。pg 有没有类似工具 o 记故意把 mysql 的兼容性弄得乱七八糟的。 说不定哪一天就不用 mysql 了。 |
![]() | 60 Kylin30 2020-11-29 22:40:13 +08:00 你也来网上冲浪啊 |
![]() | 61 lihongming 2020-11-30 02:50:23 +08:00 via iPhone 两个都在用,但觉得楼主的“不像个严谨的关系型数据库”观点有些舍本逐末。用户要的并不是关系型数据库本身,而是关系型数据库的优点,所以只要实现了那些优点就可以了,其它无所谓的。多数情况下,特别教条反而会带来不便,我想这也是 MySQL 流行的一个原因吧。 |
![]() | 62 Aeoluze 2020-11-30 09:51:02 +08:00 有多少人没用过 Postgres ? |
63 Dganzh 2020-11-30 09:57:35 +08:00 pg 资料是真的少! MySQL 的一大堆! |
![]() | 65 PopRain 2020-11-30 10:22:08 +08:00 @levelworm like ilike 业务系统很少会用到,主要还是 = 等比较, 另外,ilike 属于特定预防,ORM 不改造不会自动映射(只会应收到 like ) , 另外 citext 有类似问题,如果参数不加 ::citext 强制转换也搜索不到,这个也要改造 ORM 或者 SQL 语句,不方便。 虽然一个系统很少切换后台数据库,但是能用标准的语法还是用标准的语法比较好。 |
![]() | 66 PopRain 2020-11-30 10:23:53 +08:00 ![]() @levelworm (上面打错了,不知道怎么改) like ilike 业务系统很少会用到,主要还是 = 比较, 另外,ilike 属于特定语法,ORM 不改造不会自动映射(只会映射到 like ) , 另外 citext 有类似问题,如果参数不加 ::citext 强制转换也搜索不到,这个也要改造 ORM 或者 SQL 语句,不方便。 虽然一个系统很少切换后台数据库,但是能用标准的语法还是用标准的语法比较好。 |
![]() | 67 levelworm 2020-11-30 10:43:14 +08:00 via Android @PopRain 看来的确和我这种写查询的不一样了,我们对效率不敏感,反正不 hit 生产数据库。。。 |
68 zcsz 2020-11-30 11:08:12 +08:00 GP 数仓,就当它 PG 在用了,出去沟通也说 PG,节省沟通成本,还是有很多人知道的 |
69 darknoll 2020-11-30 13:34:47 +08:00 是很优秀,关键是没多少人用 就跟 java 和 C#一样 |
![]() | 70 HolmLoh 2020-11-30 15:44:40 +08:00 不懂 MySQL,现在公司正在把 Oracle 转到 PG,新研发的项目都用 pg 了 |
![]() | 71 jmyz0455 2020-11-30 16:12:45 +08:00 听说 PostgreSQL 可以直接输出 API ? |
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 |
73 echowuhao 2020-12-01 12:00:51 +08:00 @MoccaCafe 2,不能跨库查询,如果 PostgreSQL 数据文件完全损坏,那真的就是损坏了 postgres 里面有 schema 的概念,有点像 mysql 里面的 db 了。就是一个 schema 里面可以有很多表。你把 mysql 里面的不同数据库放到不同 schema 里面,就可以了。 如果非要跨库,不仅可以跨,还可以跨不同服务器上面的,postgres_fdw 速度会慢一点。 |
![]() | 75 MoccaCafe 2020-12-01 13:20:08 +08:00 via iPhone @echowuhao 你那个\d 只是在命令行里使用,无法像 show create table 一样随时查询,甚至集成到程序里。而 pg 想实现这点,又是 command 又是 shell 的,一点也不优雅 |
![]() | 76 MoccaCafe 2020-12-01 13:22:46 +08:00 via iPhone @echowuhao 你说的这个 fdw 也正是我想说的,oracle fdw 之前出现语法不兼容直接报错,而 mysql fdw 时不时断开连接无法请求。需要注意的是,这些 fdw 都不是核心人员开发,都是 github 一些爱好者开发得,换做是你,你敢用非核心的开源 fdw 来替换跨库查询吗? 连本机跨库查询都这么复杂,难怪 pg 不火。性能虽然好那么一点,但开发起来总是很拉胯的样子 |
![]() | 77 MoccaCafe 2020-12-01 13:24:24 +08:00 via iPhone ![]() 所以 pg 就像 wp 一样,看起来好像什么功能都有,但实际每个功能都只是有而已,用起来很拉胯,一点也不贴近码农的实际需求,天天弄些不切实际的 |