web-dev-qa-db-ja.com

どのクエリが遅くなっているのかがわかりますか

Ubuntu 12.04.2 LTS(GNU/Linux 3.2.0-24-Virtual X86_64)とPerconaのMySQL Serverを実行しています。

私はゆっくりとクエリを得ることを知っていますが、私が彼らがそうであることを見つけた場所がわからない私は彼らを救うことができます。

誰かがログがある場所を見つけるのを助けることができる、そして私が問題のあるクエリが何であるかを伝えることができるならば。

ありがとう

1
GoldieNZ

MySQL_LONG_QUERIESを有効にすることで開始してから、ログ出力を調べます。

[mysqld]の下のmy.cnfで

long_query_time         = 1
log-slow-queries        = /var/log/mysql/mysql_slow.log
 _

そしてそこから行きます。

使用することもできます。

show processlist
show full processlist
 _

現在実行中のクエリが表示されています。

2
rfelsburg

私たちの友人Rfelsburgが正しいと言ったことはすべて、やるべきこと。ただし、遅いクエリログに表示されているすべてのクエリを追加する必要はありません。一部のクエリが実行されるべきキューで待機していることを注意する必要があります。ただし、他の遅いクエリがあるため、Long_Query_time値を渡したクエリとして遅いクエリログに表示されているので、遅く実行されていると思われる。

サーバーをしばらく実行して遅いクエリを収集させた後は、SlayQueryDump を使用する必要があります。詳細はこちら をクリックしてください。ファイルを使用すると、クエリが見つかった回数、テーブルロック時間、...を見つけることができます。

あなたがいかなる禁止を持っているかどうか私に知らせてください。

0
Kourosh Samia