2

2つのMySQLiオブジェクト$db1とを作成するとし$db2ます。

接続は(ローカルで)異なるサーバーに存在し、データベース構造は同一です。同じクエリで両方のサーバーにクエリを実行したいと思います。

私の質問は次のとおりです。

  1. データベースを同時にクエリできますか?
  2. 結果を組み合わせる効果的な方法は何ですか?

いくつかの洞察または正しい方向への指摘をいただければ幸いです。

4

1 に答える 1

4

2 つのスレッド (各 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 に答える