首页 > 解决方案 > postgresql 多租户模式与数据库

问题描述

我们设计了一个多租户系统(可以说是数百个租户,而不是数千个)。没有共享数据。数据库是 PostgreSQL。为每个租户或架构创建一个单独的数据库更好吗?

优缺点都有什么?对文件系统、数据库引擎表/视图(如锁、对象权限等)有什么影响 - 在多模式解决方案中它们会更大吗?单独的数据库应该更容易备份/恢复。

我知道有很多类似的问题,但大多数与共享数据的案例有关,这是多个数据库的主要缺点,我们没有这样的要求。

标签: databasepostgresqldatabase-designdatabase-schemamulti-tenant

解决方案


如果您永远不需要在单个查询中使用来自多个租户的表,我会选择单独的数据库。

查询的原始速度并没有真正受此影响,对文件系统或内存的影响也没有。

然而,对于许多模式和许多表,查询优化器往往会变得更慢(但我们在这里谈论的是数十万)。在这种情况下,制表符完成psql也没有那么有效。

将 pg_dump/pg_restore 与分离的数据库一起使用也比使用分离的模式更容易一些。

但这是一条模糊的界线,实际答案很可能基于个人意见和偏好。


推荐阅读