2

假设我创建了 2 个 MySQLi 对象$db1$db2.

连接驻留在不同的服务器(本地)上,并且数据库结构相同。我想用相同的查询查询两台服务器。

我的问题是:

  1. 我可以同时查询数据库吗?
  2. 有哪些有效的组合结果的方法?

一些见解或指出正确的方向将不胜感激。

4

1 回答 1

4

您可以启动两个线程(一个查询每个 DB),加入两个线程,然后处理结果。

PHP 对线程的支持可通过以下扩展获得:

http://php.net/gearman

http://sourceforge.net/projects/phpthreadlib/

https://github.com/kulikov/php-threads-manager

https://github.com/dlsniper/php-threads

https://github.com/unusorin/php-threads

我知道你说你想做应用级分片。我会争辩(已经做到了)应用程序级别的分片是不平凡的。初始设置很容易,但是当您需要添加新分片时会很复杂(在应用程序在线时将键范围迁移到新服务器并非易事)。至少看看 MySQL 对分片和分区的支持:http: //xeround.com/blog/2011/11/mysql-sharding-vs-mysql-partitioning

于 2013-03-19T23:48:10.950 回答