假设我创建了 2 个 MySQLi 对象$db1
和$db2
.
连接驻留在不同的服务器(本地)上,并且数据库结构相同。我想用相同的查询查询两台服务器。
我的问题是:
- 我可以同时查询数据库吗?
- 有哪些有效的组合结果的方法?
一些见解或指出正确的方向将不胜感激。
您可以启动两个线程(一个查询每个 DB),加入两个线程,然后处理结果。
PHP 对线程的支持可通过以下扩展获得:
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