我正在尝试构建一个由多个数据库组成的单个应用程序,每个数据库都有不同的要求。
Server1:文件 (.txt .docx .png) 作为附件。Server2:日历事件。Server3:用户数据。Server4:库存。
当然,我可以将所有这些都存储到一个数据库中。但是,我确信与存储大量字符串值的数据库相比,用于存储文件的数据库需要完全不同的优化才能有效运行。因此,出于这个原因以及模块化/安全性,我希望将负载分离到多个数据库中。将所有数据存储在一个数据库中,如果遭到破坏,只需一次黑客攻击就可以访问所有内容。
这是一个相当简单的问题。如何跨多个服务器链接数据库以便可以链接/查询数据,例如
示例:用户“Cathie”将在 Server3 中拥有一个包含她的姓名和电子邮件的条目,她还可能将文件附加到她的帐户 (Server1),或拥有公司设备 (Server4)。我希望能够使用单个搜索查询搜索所有 3 个服务器,这可以在 MySQL 关系中完成吗?
也很高兴听到一些开箱即用的想法。
您似乎患有过早优化\xe2\x84\xa2 综合症。
\n\n\n我确信与存储大量字符串值的数据库相比,用于存储文件的数据库需要完全不同的优化才能有效运行。
\n
你为什么确定?您是否做过任何测试来确认这一点?对于这两个用例,您究竟会进行哪些不同的设置?
\n当然,您可以使用 MySQL联合将不同的服务器呈现为单一视图,但它会带来其自身的性能挑战。除此之外,您还将陷入分布式事务的泥沼,这是您希望尽可能避免的事情。
\n此外,通过将应用程序数据分布在多个服务器上,还会增加维护开销。您现在需要确保用户身份验证和授权规则在所有这些服务器上同步。您还将面临创建在所有服务器上一致的数据库备份的困难。
\n在我看来,这些问题远远超过了您寻求的短暂性能优势。
\n