2つのMySQLiオブジェクト$db1
とを作成するとし$db2
ます。
接続は(ローカルで)異なるサーバーに存在し、データベース構造は同一です。同じクエリで両方のサーバーにクエリを実行したいと思います。
私の質問は次のとおりです。
- データベースを同時にクエリできますか?
- 結果を組み合わせる効果的な方法は何ですか?
いくつかの洞察または正しい方向への指摘をいただければ幸いです。
2 つのスレッド (各 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