说到关系型数据库,很多人就会说 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 14
这里应该问多少人不知道
|
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 2020-11-27 16:57:18 +08:00 via Android
应该开发都知道吧。。。。。
|
14
joyhub2140 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
liprais 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
FaiChou 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 1
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 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 |
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 1
@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 1
所以 pg 就像 wp 一样,看起来好像什么功能都有,但实际每个功能都只是有而已,用起来很拉胯,一点也不贴近码农的实际需求,天天弄些不切实际的
|