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

2024-07-16 14:40:21 +08:00
 qwertty01

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

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

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

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

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

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

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

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

© 2021 V2EX