Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
拆分MySQL数据库_Mysql_Database_Database Schema_Multiple Databases - Fatal编程技术网

拆分MySQL数据库

拆分MySQL数据库,mysql,database,database-schema,multiple-databases,Mysql,Database,Database Schema,Multiple Databases,我有一个关于拆分数据库的问题。这就是问题所在: SELECT COUNT(*) FROM monies.link_monies_new lcn ' . 'INNER JOIN products.link l ON lcn.link_id = l.link_id ' . 'INNER JOIN products.products_format af ON l.product_format_id = af.product_format_id '

我有一个关于拆分数据库的问题。这就是问题所在:

SELECT COUNT(*) FROM monies.link_monies_new lcn '
         . 'INNER JOIN products.link l ON lcn.link_id = l.link_id '
         . 'INNER JOIN products.products_format af ON l.product_format_id = af.product_format_id '
         . 'INNER JOIN products.products_categories ac ON af.product_category_id = ac.product_category_id '
         . 'WHERE lcn.click_time BETWEEN FROM_UNIXTIME(1311721200) AND FROM_UNIXTIME(1311807600) '
         . 'AND ac.product_category_id = 1
问题是,现在数据库和产品将位于不同的服务器中。解决办法是什么?我需要两个问题吗?我有点迷路了

谢谢

如果我正确地理解了您的问题,那么您希望有一个连接两个数据库之间的表的查询,并且数据库将位于不同的服务器上

假设您在“货币”服务器上运行查询,您将在货币服务器上创建指向“产品”服务器的联邦表。这样,您的查询将继续工作,MySQL将神奇地管理它们位于物理上独立的服务器上的事实

性能调优可能会有问题,但这是保持查询正常工作的最简单方法

例如,您可以在名为“产品”的“货币”服务器上创建本地数据库;在产品中,您将创建一个“链接”表:

创建表链接(
链接id INT(20)非空自动增量,
....
主键(链接id)
)
引擎=联邦
连接mysql://fed_user@产品_服务器:9306/products/link';

然后,您可以运行上面的查询,而无需更改任何内容

非常感谢你的回答,但是这些表已经创建好了,这是一个由数百个表组成的大系统,我没有这个选项。你能给我一个例子说明你是如何做到这一点的吗?我必须将当前表更改为联邦表吗?尽管这个任务很复杂,我对MySQL还是有点不在行。谢谢当您移动到新服务器时,您无论如何都必须迁移数据,以便可以预先实现联邦表。我一直在寻找这样的解决方案,已经有很长时间了!
CREATE TABLE link (
    link_id     INT(20) NOT NULL AUTO_INCREMENT,
    ....<<other columns from the link table>>
    PRIMARY KEY  (link_id)
)
ENGINE=FEDERATED

CONNECTION='mysql://fed_user@products_server:9306/products/link';