你如何同时从两个数据库中进行选择?

时间:2013-03-19 23:42:25

标签: php mysql

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

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

我的问题是:

  1. 我可以同时查询数据库吗?
  2. 结合结果有哪些有效方法?
  3. 一些见解或指向正确的方向将不胜感激。

1 个答案:

答案 0 :(得分: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