在postgres中可以创建多少个模式

Ars*_*n T 33 postgresql

在使用postgres实现多租户解决方案时,我需要回答一个postgres数据库中最大模式可以驻留多少.

Pav*_*ule 39

我们测试了数千个模式 - 数千个表没有问题.有一些已知问题

  • GUI管理的问题 - 启动慢启动,因为在启动时读取完整的对象树,
  • pg_dump的问题 - 缓慢启动备份 - 需要大量时间来锁定对象.

  • @MarcioSimao - 大约一万.两年后,真正的限制在于管理和备份的基本工具.当一个事务中的已处理对象数大于20000个对象时,pg_dump,pg_restore会出现问题.另一个问题是在太大的架构中膨胀缓存.Postgres在每个数据库的本地缓存中保存了大量数据.当您在大型模式上重用连接时,这个缓存可能太大而且有时很慢 - 但这取决于pooler sw.像pgbouncer或pgpool这样的可用sw不太聪明:( (6认同)
  • @DaianaSodré - 几乎一切仍然是真的。现在,也许我更好地理解了这种架构的优点或缺点 - 它减少了连接池的一些问题,但另一方面,它可能会增加与内部系统目录缓存膨胀相关的内存问题。所以我认为最好的解决方案是一些妥协——更多的数据库,以及在任何数据库中更多的模式。可能每个数据库具有数百个模式的十个数据库比具有数千个模式的一个数据库更好。 (3认同)
  • @PavelStehule您如何解决pg_dump问题?有小费吗?我正面临着同样的问题。 (2认同)

小智 7

根据 Tom Lane 的说法,每个数据库的最大模式数量没有限制参考:https ://www.postgresql.org/message-id/24478.1109618520%40sss.pgh.pa.us