1

クエリのパフォーマンス プロファイリングを行っており、最後の 100 件よりも多くのクエリを確認できる必要があります。最大 profiling_history_size は 100 ですが、最後の 100 件以上のクエリを何とか保存できるデバッグ ツールを見てきました (たとえば、django デバッグ ツール)。

そうです

SET profiling=1;
set profiling_history_size = 100;
SHOW PROFILES;

レコードを別のテーブルに移動できれば問題ありません。それとも、まったく別の場所を探す必要があるのでしょうか?

私のプログラムは同じクエリを何度も実行するので、本当に必要なのは、特定のクエリが実行されたすべての時間の集計です。すべてのクエリを取得したら、ある種の GROUP BY を実行するつもりでしたが、他に調べる場所があるのではないでしょうか? (2つの質問をするつもりはありませんが、最終的に何が必要かを知ることで、上記の質問に対する答えが変わる可能性があります。)

4

2 に答える 2

0

MySQL 5.6 では、ステートメント (クエリ) はパフォーマンス スキーマによって計測されます。

クエリにかかる時間に加えて、返された行数などの多くの属性を取得し、さまざまな集計を取得します。

見る

http://dev.mysql.com/doc/refman/5.6/en/statement-summary-tables.html

http://dev.mysql.com/doc/refman/5.6/en/performance-schema-statements-tables.html

特に便利な集約は、ダイジェストによる集約であり、いくつかの「類似したクエリ」をグループ化します。類似とは、同じ構造を意味しますが、リテラル値が異なる可能性があります (「select * from t1 where id = 1」および「select * from t1 where id = 1」および「select * from t1 where id = 1」および「select * from t1 where id = 1」 id = 2" は、"select * from t1 where id = ?" として集約されます)

于 2012-08-07T19:52:01.513 に答える