2009-06-18 10 views
25

MySQLデータベースをプロファイルするにはどうすればいいですか?私はすべてのSQLがデータベースに対して実行されるのを見たいと思う。どのようにMySQLをプロファイルする

私はあなたがこれを行うことができます知っている:

  • set profiling=1;
  • は、例えばSELECT * FROM messages WHERE fromaddress='xxx';
  • SHOW PROFILES;

しかし、これが唯一のコマンドでスタッフの実行には適用されているように見える(あなたのスロークエリを実行します私はウェブサイトを運営している結果を見たいと思っています。

+1

明らかに、Webサイトでこれらのクエリを実行することはできません。私はあなたがアプリケーションコードの変更を意味しないメソッドを求めていると思います。 –

+0

["'SHOW PROFILES'は非推奨で、今後のリリースでは削除される予定です。代わりにパフォーマンススキーマを使用してください。]](http://dev.mysql.com/doc/refman/5.7/en/show-profiles.html ) – bishop

答えて

6

あなたはquery logが欲しいですが、重い生産サーバーでこれを行うのは明らかに賢明ではありません。

1

クエリログをリアルタイムで簡単に解析できます。 Linux上で、あなたが

またライブログを見るためにテール-fを使用できる場合は、これらの人からいくつかのフリーソフトウェアを試すことができます。

http://hackmysql.com/mysqlsla

0

MySqlAdministratorは(ログビューを含む)の機能にいくつかの有用なビルドを持っていますが、ログのためにそれはUbuntuの上で私のために働いたデータベース

3

と同じマシン上で実行する必要があります。

MySQL設定ファイル(通常はUbuntuの/etc/mysql/my.cnf)を見つけて開きます。 「ロギングおよびレプリケーション」

# * Logging and Replication 
# Both location gets rotated by the cronjob. 
# Be aware that this log type is a performance killer. 

log = /var/log/mysql/mysql.log 

やMySQLの新しいバージョンでは、単にログをオンにするlog変数のコメントを解除コード

general_log_file  = /var/log/mysql/mysql.log 
general_log    = 1 
log_error    = /var/log/mysql/error.log 

のこの行をコメントアウト言うセクションを探します。必要に応じてパスを調整し、
sudo /etc/init.d/mysql restart 

は今、私たちは、彼らが来るとしてクエリの監視を開始する準備が整いました新しいターミナルを開き、ログファイルをスクロールするには、次のコマンドを実行します。このコマンドを使用してMySQLを再起動します。

tail -f /var/log/mysql/mysql.log 
関連する問題