プロが教える店舗&オフィスのセキュリティ対策術

PHP+MySQLでプログラミングをしているのですが、実行時にmysql_queryの処理に時間がかかっています。状況は以下の通りです。
・処理時間を計測するとmysql_queryの実行に15秒程度かかっています。
・Webminで直接同じSQL文を実行すると1秒程度で終わります。
・SQLのコマンドは単純なUPDATEです。
・indexは設定してあります。
・DBに格納してあるレコード数は数100件程度です。
・optimizeは実行してみましたが、あまり効果はありませんでした。

お聞きしたいのはWebminで実行すると1秒程度で終わるSQL文がmysql_queryで実行すると、なぜ時間がかかるのかということです。
mysql_queryで時間がかかる原因およびmysql_queryの処理時間を短縮する方法などがあれば教えてください。
よろしくお願いします。

A 回答 (3件)

通るすがるです。


上記状況プラス、、DBとWebサーバーは同じサーバという状況から考えられることは

ディスクスワップが発生している(メモリ不足)可能性しか考えられないですね

データ件数が100件程度とありますが、レコード長および項目数はどれぐらいなのでしょうか?

また、php.iniの設定(特にメモリ制限について)はどのように検討されたのでしょうか?
もし、未検討でしたら、http://www.php.net/manual/ja/ini.core.phpのリソース制限の
memory_limit設定当たりから、検討してみては如何でしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
お礼が遅くなってすみません。教えていただいたように
memory_limitなどの設定をいろいろと変更して
多少改善してきました。
大変参考になりました。感謝致します。

お礼日時:2010/04/21 09:13

はじめまして、通るすがるともうします。


上記現象なのですが、sqlのせいでないかもしれません。

htmlの生成に時間(つまりdbサーバー->web->ie)の間で時間が
かかっている可能性はないですか?

htmlの生成などは結構cpuを浪費しますよ

あとはdb-webサーバー間の回線速度とか

この回答への補足

PHPの各処理の処理時間を出力すると、mysql_queryで時間がかかっていましたので、今回の場合htmlの生成で時間がかかっているわけではないと思います。また、DBとWebサーバーは同じサーバなので、そのやりとりに時間がかかることもあまり考えられません。
WebminでSQL文を実行すると短時間で終わるのに、mysql_queryで実行するとmysql_queryを呼び出してから戻るまでに時間がかかる原因を知りたいということです。

補足日時:2010/04/15 09:18
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2010/04/15 09:17

おなじphp環境であるphpMyAdminでテストしてみては?

    • good
    • 0
この回答へのお礼

アドバイスをいただき、ありがとうございます。

お礼日時:2010/04/14 10:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!