database - postgresql 多租户模式与数据库
问题描述
我们设计了一个多租户系统(可以说是数百个租户,而不是数千个)。没有共享数据。数据库是 PostgreSQL。为每个租户或架构创建一个单独的数据库更好吗?
优缺点都有什么?对文件系统、数据库引擎表/视图(如锁、对象权限等)有什么影响 - 在多模式解决方案中它们会更大吗?单独的数据库应该更容易备份/恢复。
我知道有很多类似的问题,但大多数与共享数据的案例有关,这是多个数据库的主要缺点,我们没有这样的要求。
解决方案
如果您永远不需要在单个查询中使用来自多个租户的表,我会选择单独的数据库。
查询的原始速度并没有真正受此影响,对文件系统或内存的影响也没有。
然而,对于许多模式和许多表,查询优化器往往会变得更慢(但我们在这里谈论的是数十万)。在这种情况下,制表符完成psql
也没有那么有效。
将 pg_dump/pg_restore 与分离的数据库一起使用也比使用分离的模式更容易一些。
但这是一条模糊的界线,实际答案很可能基于个人意见和偏好。
推荐阅读
- c# - 是否可以在 datagridview 中放置/绑定字典并使其可编辑?
- c++ - 使用 cout 显示后 double 值发生变化
- php - PHP数组合并爆炸
- vba - 访问 vba 包装类处理事件
- javascript - 当我们离开页面时,如何更改我们为输入设置的数据的值?
- powershell - MD5 哈希所有文件,然后与原始 csv 比较
- c - 在 C 中使用 struct 和 for 循环创建树
- python - Azure Functions 部署失败并使用 Torch
- java - java.lang.OutOfMemoryError:无法创建新的本地线程
- php - Codeigniter 包括