连接来自不同数据库的表的性能影响

Muc*_*eci 15 mysql database join cross-database

我有一个网站,使用一个名为"site1"的数据库.我打算将另一个站点放在同一台服务器上,该站点也将使用"site1"中的一些表.

因此,我应该使用三个不同的数据库,如"site1"(对于第一个站点特定数据),"site2"(对于第二个站点特定数据)和"general"(对于常见表).其中将存在数据库general和site1和site2之间的连接语句.或者我应该将所有表放在一个数据库中?

哪种做法最好?每种情况下表现如何不同?我正在使用MySQL.那么这种情况尤其适用于MySQL呢?

提前致谢...

Gau*_*ale 11

从性能的角度来看,不会有任何差异.只需保留您的索引,您就不会注意到您使用的是单个DB还是多个DB.

除了性能之外,我还能想到两个小问题:1.跨DB不能拥有外键.2.根据数据库的用法或基于应用程序对数据库中的表进行分区可以帮助您以简单的方式管理权限.

  • 如果MySQL位于同一服务器上,则可以在MySQL中的DB之间使用外键.但不知道如果它们位于不同的服务器或其他DBMS中会发生什么. (5认同)
  • 我的回答是假设所有数据库都在同一个数据库服务器上.如果将它们保存在不同的数据库服务器上,您将开始看到性能下降. (4认同)