• ベストアンサー
  • 暇なときにでも

二つのMySQLを同時検索

現在、WEBサイトを製作しています。 現在の構成 Apache1.3 PHP4.4 Mysql4.1 データ量が多くなりデータベースを二つのサーバーマシンに分けました。 通常一つずつのサーバーマシンに順番に 検索クエリを実行することになりますが、 同時に二つのサーバーマシンに検索クエリを実行する 方法はあるのでしょうか? 現状 一つずつ順番にサーバーマシンで検索を実行 2秒2秒で4秒になる 同時に二つのサーバーマシンに検索クエリを実行 タイムが2秒 になる方法 またPHPとMySQLの構成ではなく oracle、Postgre、Java等であれば 実行可能でしょうか。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数214
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.3

特にMySQLに詳しい訳ではないので、適切な回答ができないんですが.. 非同期クエリなる手法がMySQLで実現できれば、複数のDBが同時に検索できるので、 順次検索するよりは、かなりレスポンスが向上する可能性があります。 実際に、PHPでも、PostgeSQLでは使えるはずです。 (MySQLには、現時点で無いハズです、今後に期待できるかも知りません) 個人的には・・・ 素直に、要求に見合うハードなり、データベースなりを検討するのが適当かと思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

度々回答ありがとうございます。 やはりPHP+MySQLでは、簡単にはいかないんですね。 外部コマンドで、非ブロッキングモードで並列処理する というサイトをみたのですが、DB問い合わせに有効かどうかわからないし そもそも、WEBアプリに外部コマンドは向かないですよね ・なるべくDBサーバを分けない方向 ・1台あたりの処理を速くする方向 で進めてみます。 ありがとうございました。

関連するQ&A

  • 再インストールが必要でしょうか?

    現在Redhat7.3、PHP4.2.2とPostgreSQL7.2で動作しているのですが Postgreを7.3にバージョンアップしたいと考えております。 Postgreを現在と同様のディレクトリ構成で入れなおしても、 PHPを再インストールする必要がありますでしょうか? 宜しくお願いします。

    • 締切済み
    • PHP
  • 検索結果を2列で表示させたい

    PHP5、MySQL4、Apache2、DreamweaverMX2004を使ってリンク集を作っています。 DBからの検索結果を、現在は 1 2 3 4 と1列になっているのですが、これを 1 2 3 4 と表示させたいと思っているのですが どうしてもうまくいきません・・・。 ヒントでも教えて頂ければ幸いです。 どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP
  • MySQLにおける検索速度について

    はじめまして。 GOOと同じWeb上における質問&回答システムのようなものを作っております。 サーバ構成は、 CPU:2.4GM MEMORY:1GM OS:RedHat7.2 WWWサーバ:Apache1.3x DB:MySQL3.23 インターフェースにはPHP4.2を使用しております。 テーブル構成は、基本的に、 [質問テーブル] 質問No.(PK) 質問タイトル 質問内容 [回答テーブル] 回答No.(PK) 質問No.(FK) 回答内容 のようにしております。 検索の方法は、 該当件数は、select count(質問No.) from 質問テーブル で取得し、 一覧は、select * from 質問テーブル limit a,b order by 質問日時; のようにlimitを使用して表示する件数だけ取得しています。 現在ダミーデータを使用してテストしています。 同時アクセスのないローカルで単体でテストしています。 1万件をこえるあたりから急に検索のときにつっかかるくらいの遅滞が発生し、 3万件からそれが顕著になり、 30万件では2秒くらいかかります。 これはしょうがないのでしょうか。 「教えてGOO」等はすぐ検索されますが、どのようになっているのでしょうか? 検索の早いMySQLとはいえフリーだからしょうがないのでしょうか。 MySQLはデフォルトの設定のままです。 (MySQL使用するメモリ等を多少いじってみたのですがあまり変化がありませんでした) 個人的には、あとは、MySQLの適切なパラメータ設定、テーブル設計あたりだと思っているのですが、経験不足でこれだというものが思いつきません 宜しくお願い致します。

その他の回答 (2)

  • 回答No.2

分散DBへ同時要求するようなミドルウエア(というかエクステンション)を自作すれば、 目的は達成できると思いますが... 技術的に難しいんじゃないですかね。(純粋に技術力の問題ですが)

共感・感謝の気持ちを伝えよう!

質問者からの補足

何度もありがとうございます。 エクステンションとなると、現在DBサーバーに接続している Mysqlクライアントを、自作したエクステンションが 2つ同時に扱うような感じでしょうか。 または直接DBへ要求するとか。 道のりは遠そうですね。。。

  • 回答No.1

>またPHPとMySQLの構成ではなく >oracle、Postgre、Java等であれば >実行可能でしょうか。 データベースがOracleであれば.. Oracle自身の機能で、分散問い合わせができ、 クライアントは普通にFETCHするだけでOKです。 (オラクルの場合、分散DBにする必要もないかも) >データ量が多くなりデータベースを二つのサーバーマシンに分けました。 分散管理すると、少なくとも問い合わせのオーバーヘッドは、 一元管理に比べて、増えるはずですので、かえって不利だと 思いますよ。

共感・感謝の気持ちを伝えよう!

質問者からの補足

ありがとうございます。 ただ、上記の件は知ってました。 分割管理はメモリを有効に使いたいので 構成はどうしても二つになっちゃいます。 他の構成ありませんかねぇ。

関連するQ&A

  • PHP+mysqlでの検索について

    データベースの方で同じ質問をしましたが、カテゴリー的にはこちらの方が適当だと感じましたので、再度このカテゴリーで質問させていただきます。 以前、このカテゴリー内で「MYSQLで違う検索結果が出てしまいます。」という質問をした者です。 再度同じような壁にぶつかってしまい悩んでいます。 具体的には以下のよう状態です。 テスト環境(会社のパソコン) PHP4.2.3 mysql4.0.5 検索結果~異常なし 公開環境(レンタルサーバー) PHP4.1.2もしくは4.2.1(サーバーによって違うということです) mysql3.23.46 検索結果~正しい検索結果が出ない となっています。 検索語がカタカナor漢字の場合は正常に動作するのですが、ひらがなだと「な」と「に」、「に」と「り」などがごちゃごちゃになるらしく、 例えば、検索語で「うに」と入れると「うに」と「うり」が検索結果として返ってくるのです。 文字コードの設定かとも思ったのですが、テストの環境の方では正しい検索結果が出ていますし、mysql内の文字コードもテスト環境はもちろんですが、レンタルサーバーの方でも「文字コードにEUC文字コードを利用して下さい」ということから、テスト環境と同じく default-character-setはujisになっていると思われます。 あとはPHP・mysqlのバージョンの違いくらいしか思い当たるところがありません。 どなたかアドバイスいただけるとありがたいです。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • 1台のサーバで2つ同時起動させ、使い分けたい

    現在、1台のLinuxサーバでPostgreSQL7.xが起動しています。 そこへ、もう一つバージョンの違うPostgreSQL8.3を追加し、同時に2つを起動して使い分けたいと考えていますが、可能でしょうか。 使い分けというのは、同サーバ内に設置しているPerlやPHPのシステムがいくつかあり、例えばAというシステムはpostgreSQL7.xのDBデータ、BというシステムはpostgreSQL8.XのDBデータを利用するようにするということです。 よろしくお願いします。

  • 複数条件検索について

    よろしくお願いします。 検索条件として以下3つあるとします。 1.人数指定 2.年齢指定 3.住所指定 普通ですとこの条件全てを満たしたデータを検索するように ANDなどでしますが、この3つの条件がランダムな場合(例えば 1と2、1と3などなど・・)、ANDですと全て揃ってないと 検索結果が得られません。ORですとどちらかに合った検索結果になってしまいます。 ランダムな組み合わせでその条件を全て満たした結果を得るには何か うまい方法はありますでしょうか?? 説明が下手で申し訳ありませんが、よろしくお願いします。 環境 OS:winXP PHP4.4.4 apache2 mysql4

    • ベストアンサー
    • MySQL
  • PHP同時処理の負荷について

    PHP同時処理の負荷について教えて下さい。 仮に、検索語句の詳細情報表示PHPスクリプトがあったとします。 (例A) 野菜サイト(yasai.hoge.jp)内にこのPHPスクリプトがあり 魚サイト(sakana.hoge.jp)内にもこのPHPスクリプトがあり 肉サイト(niku.hoge.jp)内にもこのPHPスクリプトがあるとします。 Aさんが野菜サイトで「ネギ」語句を検索実行 Bさんが魚サイトで「鮭」語句を検索実行 Cさんが肉サイトで「牛」語句を検索実行 例Aは、マルチドメインごとにPHPスクリプトを配置しているとします。 (例B) PHPスクリプトは全く同じ内容なのでサーバー内に1つだけ置き 野菜、魚、肉の各サイトから語句が検索実行されると この1つのPHPスクリプトで処理される。これを例Bとします。 この場合、読込速度が遅いのやサーバーに負荷がかかるのはどちらでしょうか? 例Bは、1つのPHPへ処理が集中するので読込が遅くなるのでは??と思ったり 結局サーバーの処理負荷は例Aも例Bも全く同じでは??と思ったりするのですが 実際のところはどうなのでしょうか?  

    • ベストアンサー
    • PHP
  • MySQLデータベースについて

    データベースについて詳しい方にお聞きしたい事があります。 初心者なので書いている内容におかしな点もあるかと思いますが、よろしくお願いします。 5年ほど前のJavaを習っていて、簡単なデータベースを作ったことはあります。 □現在、会社が違うレンタルサーバーを一つずつ借りています。 A社のサーバー上で作成したデータベースをB社のサーバー上に公開しているサイトから呼び出し、テーブルを一覧表示できるのでしょうか? □初心者がデータベースを作成するにはphpMyAdminを使用するのが一番良いでしょうか? 使い方を検索してみたらちょっと難しそうですね。 Javaでデータベースの勉強をしていた時はあらかじめ作ったフォームにデータを入力していくだけだったので、同じような感じのシステムはないかなと思いました。 □現在使用しているサーバーはMySQLが5つ使えると書いています。 既にWordPressでブログ開設していて4つ使用しています。残りは一つ。 野球チームのデータベースを作成しようと思っているのですが、これまでの試合の記録のデータ、これまでの選手のデータのデータベースを作成したいと思っています。 MySQLは残り一つですが、この二つのデータベースを作る事は可能なのでしょうか?二つ必要ですか? □スマホのサイトも作成しているんですが、PCサイトと同様にデータベースに接続し、一覧表示できるのでしょうか? スマホでPHPが使えるのかなと思ったので。 ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • PHPでのmysql_connect実行について

    PHPでのmysql_connect実行について いつもお世話になります。 自宅WEBサーバーを構築しているのですが、 PHPからのmysql_connectが実行出来ずに困っています。 サーバー構成と事象を以下に記載しますので、 お分かりでしたら回答の程よろしくお願いいたします。 ■サーバー構成 ・OS : ubuntu10 server(コアシステムのみ) ・WEB : apache2(aptitudeにてインストール) ・DB : mysql5(aptitudeにてインストール) ・PHP : PHP5(aptitudeにてインストール) ■事象 WEBサイト内にてtest.phpを作成し、 $intDB_Con_ID = mysql_connect($CONST_HOST_IP_ADDR , $CONST_DB_USER_NAME , $CONST_DB_USER_PASS); と実行するが、intDB_Con_ID には何も変更されず、PHP実行コード下に 記載しているhtmlコードが実行されない。 ■事象発生後に実施した事 (1)PHPコード自体の実行確認   echo("CONST_HOST_IP_ADDR = " . $CONST_HOST_IP_ADDR . "\n");   にて変数の内容はページリクエスト結果に出力されいている事を確認。 (2)apache errorログの確認   PHP Startup: Unable to load dynamic library './pdo.so' -   ./pdo.so: cannot open shared object file: No such file or   directory in <b>Unknown</b> on line <b>0</b><br />   と出ている事を確認。 (3)httpd.confの確認   pdo.soを読み込んでいる箇所を探すが、pdo.so自体ファイル内容検索   にヒットしない。 (4)php.iniの確認   pdo.soを読み込んでいる箇所を探すが、pdo.so自体ファイル内容検索   にヒットしない。 (5)php.iniの編集   末尾に以下を追加   extension_dir = "/usr/lib/php5/20090626+lfs/"   extension = pdo.so (6)apacheの再起動後にログ確認   <b>Warning</b>: Module 'PDO' already loaded in <b>Unknown</b> on line <b>0</b><br />     と変わったが事象変わらず。 (7)phpのログ確認   PHP Warning: Module 'PDO' already loaded in Unknown on line 0   と変わったが事象変わらず。

    • ベストアンサー
    • PHP
  • MySQLからデータを取得すると日本語が「??」と表示される

    PHPとMySQLを使い、ブラウザでデータベースの読み書きをするプログラムを作っています。 ローカルで作成しているときは特に問題が無かったのですが、いざサーバマシンにアップしてみると問題が発生するようになりました。 【事象】 1.MySQLからデータを読み込みブラウザに表示すると、日本語のデータのみ「??」と表示される。 2.ブラウザからMySQLへデータの書き込みをしようとすると書き込みが出来ない。 【現時点での切り分け】 1.GETでデータを渡しており、受信した方で$_GET['hoge']を表示させると正常に表示される。ただし、データをMySQLに格納する際にエラーがでる。 2.英数字の読み書きは問題なし。 3.サーバマシンを直接操作し、コマンドプロンプトからデータを入力すると日本語でも正常に格納される。 【ローカルマシン】 Apache2.xx PHP 4.xx MySQL 5.xx 【サーバマシン】 Apache 2.2.0 PHP 5.1.2 MySQL 5.0 【設定等】 PHP、MySQLの両方とも文字コードをSJISに設定しています。 また、METAタグで「charset=Shift_JIS」と指定しています。 Apacheのhttpd.confファイルにおいてISO-8859-1をコメントアウトしましたが改善されませんでした。 mb_convert_encodingを使って文字コードを強制的に(?)SJISにして書き込もうとしてもダメでした。 読み込みも然りです。 色々と試してみましたが全然改善されず困ってます。 どなたかアドバイスをいただけましたらうれしいです。

    • ベストアンサー
    • PHP
  • windows2003serverにapache,PHP,MySqlをインストールして動かしたい

    はじめまして・・・サーバーが動きません OS:windows2003R2SP2で Apache2.0.59 PHP4.4.6 Mysql4.0.26 をインストールして動かしたいのですが…動きません Mysql→Apache→PHPの順でインストール Mysql、apache、は普通にインストールでき動作確認が出来ました。 PHPをインストールして…Apacheからphpinfo()を流すと…そのまんまブラウザに出力[<?phpinfo();?>]されます。 コマンドプロンプト→PHP d:\htdocs\phpinfo.phpを流すときちんとコマンドプロンプト上では出力されます。 何が悪いのでしょうか? 同じ開発端末windows200proでは同じ構成で普通に動作しています。 IISをインストールしてFTPサーバーを動かしているからでしょうか? それともwindows2003server無理なのでしょうか? よろしくお願いします。

  • phpMyAdminが使えない

    Windows2000上でPHP5とMySQL4でWEBデータベースを作成したいと思っています。 phpMyAdminを使って管理したいのですが、 ブラウザから http://サーバーIP/phpMyAdmin/ でアクセスすると、 「MySQLを実行できません。  PHPの設定を確認して下さい。」 という表示が出てしまいます。 ちなみに関係あるかどうか分かりませんが、WEBサーバーはApache2でドキュメントルートはデフォルトの c:\Apache2\htdocs ではなく d:\pulic_html に変えており、何故か http://localhost/ ではページが見れません。 httpd.conf、my.ini、php.ini、config.inc.php などの設定に問題があるのでしょうか? 原因と考えられる事項があればお教えただきたいと思います。 よろしくお願いします。

    • 締切済み
    • PHP
  • PHPからMySQLへのクエリの振り分け方法

    LAMP構成のWebアプリケーションでのDBサーバ増設について質問です。 今までDBサーバ(MySQL)1台で運用していたのですが、 1台増設してレプリケーションを行うことになりました。 DBサーバ1:マスター(新設) DBサーバ2:スレーブ そこで、PHPスクリプトを全面的に見直して、以下のように DBへのコネクション部分を変更する必要が出てきました。 ・コネクション中に一度でも更新系のクエリを発行する場合はマスターへ ・それ以外はスレーブへ これをインクルード先まで追って調査するのは現実的ではないため、 一括で振り分ける方法を探しています。 雑で申し訳ありませんが、環境は以下の通りです。 PHP 5.1.6 (cli) PEAR::DB(1.7.13) MySQL 4.1.22

    • ベストアンサー
    • PHP

専門家に質問してみよう