就想问问多少人知道 PostgreSQL ?

2020-11-27 16:06:21 +08:00
 dhysum

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

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

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

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

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

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

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

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

如果非要跨库,不仅可以跨,还可以跨不同服务器上面的,postgres_fdw 速度会慢一点。
echowuhao
2020-12-01 12:01:38 +08:00
@jmyz0455 postgrest 一分钟搭建一个 rest 后端,哈哈。
MoccaCafe
2020-12-01 13:20:08 +08:00
@echowuhao 你那个\d 只是在命令行里使用,无法像 show create table 一样随时查询,甚至集成到程序里。而 pg 想实现这点,又是 command 又是 shell 的,一点也不优雅
MoccaCafe
2020-12-01 13:22:46 +08:00
@echowuhao 你说的这个 fdw 也正是我想说的,oracle fdw 之前出现语法不兼容直接报错,而 mysql fdw 时不时断开连接无法请求。需要注意的是,这些 fdw 都不是核心人员开发,都是 github 一些爱好者开发得,换做是你,你敢用非核心的开源 fdw 来替换跨库查询吗?
连本机跨库查询都这么复杂,难怪 pg 不火。性能虽然好那么一点,但开发起来总是很拉胯的样子
MoccaCafe
2020-12-01 13:24:24 +08:00
所以 pg 就像 wp 一样,看起来好像什么功能都有,但实际每个功能都只是有而已,用起来很拉胯,一点也不贴近码农的实际需求,天天弄些不切实际的
630071099
2022-12-16 11:51:29 +08:00
@secondwtq 好办法,看了下 golang ,的果断 postgresql 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/729909

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX