我有这种情况:我有一个PhP 5.6应用程序,该应用程序连接到MariaDB(编辑:我之前说过MySQL,但不正确)实例。 在这种情况下,我有一个“主”数据库和每个使用该应用程序的公司的数据库。每个新公司->一个新数据库。
数据库的数量呈指数增长,我们正在考虑一种在多个MariaDB服务器之间分配这些客户端数据库的方法。
问题在于客户端数据库和主数据库之间有很多查询联接,因此我们不能盲目地连接到另一个主机。
是否可以设置在其他主机中具有数据库但仍然“虚拟地看到它们”的MariaDB实例(在同一实例上)(以便跨数据库查询仍然有效)?
我尝试用Google搜索它,但没有成功。
提前谢谢!
编辑:我发现了有关联合表的解决方案。 问题是,我们希望在服务器之间拆分数据库,因为我们可能会有许多数据库在50.000-100.000之间,并且我们担心性能。 如果我在本地全部使用联合表创建这些DB,这是否可以解决我的问题,还是我们仍然面临性能问题?
答案 0 :(得分:1)
听起来像需要FederatedX才能从客户端数据库访问 common 数据库。
“分片”将几个客户端放在每个几个服务器上。每50K服务器上没有一个客户端。
还是您尚未提供某些要求?
这些“客户”有多大?最大的有多大?如果多个客户端驻留在同一服务器上,是否存在安全问题?在同一个MariaDB实例中?在同一张表中?
您是否已经设置了某种形式的Proxy来将客户端请求路由到该客户端的服务器?还是您希望客户拥有自己的服务器?
等等,
请记住,进入“联合”表的速度很慢,在某些情况下,数量级要慢。因此,请努力减少对联邦的需求。
另一种方法是减轻单个查询的负担,但需要更多的管理工作-在所有分片上复制“公共”数据库。可以通过将“公用”服务器作为主服务器,将所有分片由从属服务器进行复制来完成。
答案 1 :(得分:0)
您可以使用Firebase,它比MySQL v更容易 但是如果你需要这个 您可以在其他具有MySQL实例的服务器上创建一个简单的API,该API将在服务器上运行查询并返回结果