プロが教えるわが家の防犯対策術!

例えば以下のように、0.8秒で抽出できたと書いてあるのに、

Showing rows 50 - 74 (5568 total, Query took 0.8403 seconds.)

実際にphpmyadminで表示されるまでに、1分くらいかかりました。
同様にサーバー上においたphpプログラムから実行した時の時間と、ターミナルなどで実行した時にかかる時間が大きく違うときがあります。

上記の原因、改善策はあるのでしょうか?よろしくお願いします。

A 回答 (3件)

Explainで適正にインデックスが貼られていることを確認してください


あとはsql文の書き方次第
    • good
    • 0
この回答へのお礼

回答ありがとうございます。それは確認しましたつもりです。where句で指定しているカラムはとりあえず全てインデックス化されています。
インデックスの張り方が変だから、この結果の0.8秒と実際の時間が違うってことになるのでしょうか?

お礼日時:2016/07/18 19:03

原因は Web サーバーかも知れません。

HTTP リクエストが多くて、処理の順番待ちに時間がかかっているのでしょう。

共用サーバーだったら、改善策はサーバーを移転するしかありません。

専用サーバーだったら、設定の調整か、メモリの増設です。Apache であれば、MaxClients や KeepAliveTimeout の調整です。
    • good
    • 0

何をやっても遅いのか、たまたまそのSQL文が遅いのか


具体性がないのでなんとも言えません。
sshで接続してmysqlクライアントで実行した場合は総じて高速ということなのでしょうか?

特定のSQL文が遅いのであれば、インデックスの付け方が間違えています
全般的に遅いのであれば、SQL実行前のデータ渡しもしくは
SQL実行後のデータの吐き出しが遅いかもしれません
そうなると、apacheやらサーバー側の問題なので管理者への問い合わせになると思います
    • good
    • 0

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

関連するカテゴリからQ&Aを探す