我们设计了一个多租户系统(比方说数百个租户,而不是数千个租户)。没有共享数据。数据库是PostgreSQL。为每个租户或架构创建单独的数据库是否更好?
有什么利弊?对文件系统,数据库引擎表/视图(如锁,对象权限等)有什么影响 - 它们在多模式解决方案中会更大吗?单独的数据库应该更容易备份/恢复。
我知道有很多类似的问题,但大多数与共享数据的情况有关,这是多个数据库的主要缺点,我们没有这样的要求。
答案 0 :(得分:2)
如果您不需要在单个查询中使用来自多个租户的表,我会选择单独的数据库。
查询的原始速度并未受此影响,也不会对文件系统或内存产生影响。
然而,查询优化器往往会因许多模式和许多表而变慢(但我们在这里谈论数十万)。 Tab-completion psql
在这种情况下效率也不高。
对于分离的数据库而言,使用pg_dump / pg_restore比使用分离的模式更容易。
但这是一个模糊的界限,实际答案很可能基于个人意见和偏好。