- ベストアンサー
二つのMySQLを同時検索する方法とは?
- WEBサイトを製作中の方へ、MySQLの二つのサーバーマシンで同時に検索クエリを実行する方法について知りたいです。
- 現在、データ量が増えてきたため、MySQLのデータベースを二つのサーバーマシンに分けました。しかし、一つずつ順番に検索クエリを実行すると時間がかかってしまいます。同時に二つのサーバーマシンで検索を実行する方法を教えてください。
- MySQLの他にもoracleやPostgre、Javaなどでも同様の機能を実現することは可能でしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
特にMySQLに詳しい訳ではないので、適切な回答ができないんですが.. 非同期クエリなる手法がMySQLで実現できれば、複数のDBが同時に検索できるので、 順次検索するよりは、かなりレスポンスが向上する可能性があります。 実際に、PHPでも、PostgeSQLでは使えるはずです。 (MySQLには、現時点で無いハズです、今後に期待できるかも知りません) 個人的には・・・ 素直に、要求に見合うハードなり、データベースなりを検討するのが適当かと思います。
その他の回答 (2)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
分散DBへ同時要求するようなミドルウエア(というかエクステンション)を自作すれば、 目的は達成できると思いますが... 技術的に難しいんじゃないですかね。(純粋に技術力の問題ですが)
補足
何度もありがとうございます。 エクステンションとなると、現在DBサーバーに接続している Mysqlクライアントを、自作したエクステンションが 2つ同時に扱うような感じでしょうか。 または直接DBへ要求するとか。 道のりは遠そうですね。。。
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
>またPHPとMySQLの構成ではなく >oracle、Postgre、Java等であれば >実行可能でしょうか。 データベースがOracleであれば.. Oracle自身の機能で、分散問い合わせができ、 クライアントは普通にFETCHするだけでOKです。 (オラクルの場合、分散DBにする必要もないかも) >データ量が多くなりデータベースを二つのサーバーマシンに分けました。 分散管理すると、少なくとも問い合わせのオーバーヘッドは、 一元管理に比べて、増えるはずですので、かえって不利だと 思いますよ。
補足
ありがとうございます。 ただ、上記の件は知ってました。 分割管理はメモリを有効に使いたいので 構成はどうしても二つになっちゃいます。 他の構成ありませんかねぇ。
お礼
度々回答ありがとうございます。 やはりPHP+MySQLでは、簡単にはいかないんですね。 外部コマンドで、非ブロッキングモードで並列処理する というサイトをみたのですが、DB問い合わせに有効かどうかわからないし そもそも、WEBアプリに外部コマンドは向かないですよね ・なるべくDBサーバを分けない方向 ・1台あたりの処理を速くする方向 で進めてみます。 ありがとうございました。