【问题标题】:Multi-schema Postgres on HerokuHeroku 上的多模式 Postgres
【发布时间】:2013-11-17 00:25:32
【问题描述】:

我正在扩展现有的 Rails 应用程序,我必须为其添加多租户支持。我已经阅读了一些资料,并了解了这个应用程序将如何托管在 Heroku 上,我认为我可以利用 Postgres 的多模式功能。

我了解到,当使用多个模式时,备份似乎存在一些性能问题。我觉得这个信息有点过时了。有谁知道现在还是这样吗?

此外,还有其他性能问题或我应该考虑的注意事项吗?

我已经考虑向每个表添加一个字段,以便我可以使用单个架构,并让该字段引用到租户表,但考虑到时间窗口,多个架构似乎是最佳解决方案。

【问题讨论】:

    标签: ruby-on-rails postgresql heroku ruby-on-rails-4


    【解决方案1】:

    根据 Ryan Bigg 和 Apartment gem 的一些工作,我将 postgres 模式用于多租户站点。


    https://leanpub.com/multi-tenancy-rails

    https://github.com/influitive/apartment


    我发现为每个客户端提供单独的模式是一种优雅的解决方案,可以提供更高程度的数据隔离。就我个人而言,我发现性能有所提高,因为 Postgres 可以简单地从表中返回所有结果,而无需过滤到“owner_id”。

    我还认为它可以简化迁移,并允许您在不进行全局更改的情况下调整单个客户数据。例如,您可以将列添加到特定客户架构并使用功能标志来启用自定义功能。

    我与性能相关的主要论点是备份是一个周期性过程,而客户表范围界定将针对每次访问。在此基础上,我会在备份方面对性能造成任何影响,而不是减慢客户体验。

    【讨论】:

    • 很有趣。我有同样的书。还是彻底的一半。但是我在反向代理配置中没有看到任何关键字。是否可以在 Heroku 中使用 subdomain 方法?我们需要做什么配置?
    猜你喜欢
    • 2016-11-06
    • 2013-12-04
    • 1970-01-01
    • 2016-04-14
    • 2014-02-01
    • 2019-05-25
    • 1970-01-01
    • 2014-09-16
    • 2019-02-04
    相关资源
    最近更新 更多