有没有懂 PG 数据库的,新项目要使用 PG 数据库,是使用多库单模式,还是使用单库多模式?

110 天前
 qwertty01

有没有懂 PG 数据库的,新项目要使用 PG 数据库,是使用多库单模式,还是使用单库多模式? 还是混合?大佬们有何高见

2101 次点击
所在节点    数据库
20 条回复
lolizeppelin
109 天前
一般都是多库
能分则分
suuuch
109 天前
单纯用过 PG ,没做过深入的运维。
schema 和 db 相同和不同点倒是能说上几个,太深入的俺也不是很清楚。
1. pg 备份和恢复的时候是可以根据 schema 操作,也可以根据 db 操作,这个区别不大。
2. pg 的配置 pg_hba 里面可以限制 ip 和用户访问 db ,这个无法做到 schema 级别。
3. 跨 schema 查询很容易,跨 db 查询的时候需要 dblink ,需要额外的配置。
4. 不同 schema 数据文件是逻辑隔离,相同 db 的数据文件是放在一起的。 不同 db 的数据文件则可以分布在不同的硬盘上,属于物理隔离。
mingtdlb
109 天前
仅使用,没研究。跟随多数,整多库单 scheme ?
qwertty01
109 天前
@lolizeppelin
@suuuch
@mingtdlb
多谢三位大佬
JackyTsang
109 天前
我们的场景是单库多模式,维护方便(只对于我们来说)
defunct9
109 天前
多库单 schema
qwertty01
109 天前
@defunct9 大佬 有啥依据吗
dragonfsky1
109 天前
多库单模式 主要指的啥,你们是要用 citus 这种吗?
defunct9
109 天前
我们实际用的是多模式多库,每回权限赋来赋去极其麻烦。管理员和程序的视角不通,看起来极其别扭。
qwertty01
109 天前
@dragonfsky1 就是每个微服务对应一个数据库 只用数据库下的 public 模式
NXzCH8fP20468ML5
109 天前
生产上就是一套实例一个库。

其他环境在一台机器上,不同环境用库划分,不同业务用 schema 划分。

postgres 库和 public 模式禁止使用。
bsg1992
109 天前
@qwertty01 常规情况下 public 是不推荐使用的
NXzCH8fP20468ML5
109 天前
我们这种应该算单库多 schema
qwertty01
109 天前
@xxfye #11 大佬 为什么禁止使用 public (刚接触 pg 库
NXzCH8fP20468ML5
109 天前
@qwertty01
应该反问:为什么要用 public 库?
qwertty01
109 天前
@xxfye #15 使用 public 的话,后端微服务就不用指定模式了(大概?)就和 mysql 一样用了
这样看起来也体现不出来啥区别,感觉也没有啥问题
NXzCH8fP20468ML5
109 天前
@qwertty01 有种东西叫 search_path ,不用特意设置。不带表名,也会默认访问和修改自己 schema 的表。
qee
108 天前
我们公司用的 pg ,分库偏向于分系统,而分模式偏向于分模块,非公共应用和必要情况下不要 public
qwertty01
108 天前
@qee 大佬 能详细讲讲吗
qee
108 天前
@qwertty01 比如我们公司的用户系统,就单独用了一个库,库下面更加用户功能的情况拆开来了几个模式。其他的各个独立业务线,各自用库然后拆分模式。
这个划分就是拆分上延展到数据库的结果,各个业务不影响干扰,最后上层搭配合理的跨系统调用实现。
对于 pg 本身而言,这玩意就是数据管理的分层思维体现,按实际业务划分即可。不过系统小就大可不必了,直接单库一把梭都没事,还省得跨库查询不方便。

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

https://www.v2ex.com/t/1057710

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

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

© 2021 V2EX