【发布时间】:2020-02-20 09:30:10
【问题描述】:
概念:
我有一个 SAAS 应用程序。我有 2-3 个客户,还有更多客户。每个客户都有自己的数据库,我们的服务器根据登录信息连接到他们。在这些数据库中的每一个上都有一个表,我们称之为saas_table,其中包含一个唯一列:id。这些表中的每一个上最多有并且将有 3000 行。
我的服务器有一个带有一个表的数据库:subscriptions。此表包含有关我的客户、他们的数据库凭据等的信息。我想从每个客户数据库中复制saas_table 的id 并将其存储在我的服务器数据库中。
接近?
哪种方法更好:在我的服务器数据库上创建一个巨大的表 log_table 并将记录存储在那里,或者为每个客户创建一个表 log_1_table、log_2_table 等并根据每个客户存储信息?我必须指出假设的log_* 表将被非常频繁地访问,每个会话至少两次。
我认为将ids 存储在单独的表中会具有更高的性能,因为表将缓存在 RAM 中。但这需要更多的编程,并且可能需要我的应用程序的新核心版本。另一方面,由于每个客户都有流量,来自log_table的记录也将经常被访问,因此也缓存在RAM中。哪种方法更好?
【问题讨论】:
-
这是一个常见问题解答。在考虑发布之前,请始终在谷歌上搜索任何错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,带有和不带有您的特定字符串/名称和站点:stackoverflow.com 和标签;阅读许多答案。如果您发布问题,请使用一个短语作为标题。请参阅How to Ask 和投票箭头鼠标悬停文本。
-
工程中没有“更好”/“最好”之类的东西,除非你定义它。同样不幸的是,所有合理的实际定义都需要大量的经验,以及与对细节的混乱敏感度相互作用的大量因素。进行简单的设计。当您通过测量证明您可以想到的设计和所有替代方案都存在问题时(无论当时意味着什么),然后提出一个非常具体的问题。这也应该定义“更好”/“最好”。 Strategy for “Which is better” questions
标签: sql database-design