この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 13963|答える: 0

[出典] Mysqlはプロファイリングを用いてSQL文の実行が遅い原因を分析します

[リンクをコピー]
掲載地 2017/07/06 11:12:17 | | | |

CleverCodeの同僚が最近、MySQLのSQL文を分析するプロファイリングツールを勧め、このツールは非常に優れており、クエリプロセス中にSQL文に費やされた具体的な時間を正確に分析できることがわかりました。 CleverCodeがここで要約し、皆さんと共有しています。

1 はじめに

MySQLのQuery Profilerは非常に便利なクエリ診断解析ツールで、クエリの実行プロセス全体で複数のリソース(CPU、IO、IPC、SWAPなど)の消費状況や、ページフォールト、コンテキストスイッチなどが発生する状況を把握し、さらにMySQLがソースファイル内でクエリ実行時に呼び出す各関数の位置も取得できます。

MySQLバージョン5.0.37以降はPROFILINGデバッグ機能をサポートしており、SQL文が消費するリソースの詳細を把握できます。 システムのgetrusage()関数を呼び出す必要があるため、Linux/Unixクラスのプラットフォームでのみ使用可能で、Windowsでは使用できません。 さらに、PROFILINGはスレッドではなくプロセス処理用であり、サーバー上の他のアプリケーションがデバッグ結果に影響を与える可能性があるため、このツールは開発中のデバッグに適しています。また、本番環境でデバッグしたい場合はその制限に注意すべきです。

2 運行

2.1 プロファイルが有効かどうか確認してください。デフォルトではオフになっています。


2.2 プロファイリングを有効にする。 変数プロファイリングは、毎回再度有効化する必要があるユーザー変数です。


2.3 以下の文を実行します: QCacheにSQLを事前に保存しないようにするには、SQLを実行する際にSELECT文がQCACHE検出を行わないように強制することが推奨されます。 これにより、分析の正確性を提出することができます。


2.4 使用例プロフィール検索クエリ最新のもの文の実行情報。 (分析:年齢20歳sql_no_cache>system_userからカウント(*)を選択)




2.5 ショープロファイルの活用。 サーバー上で実行される文のリストを表示してください。 (クエリID、所費時間、文)




2.6 フォーミュレーションIDの実行情報を照会するためにshow profileを使用します。 ここではID 6の文を分析します。 (分析:年齢>20歳の中からsystem_userからカウント(*)sql_no_cache選択)


2.7 CPUとブロックのIO消費量を把握します。




2.8 追加情報の取得。 「SHOW PROFILE *** FOR QUERY n」を実行することで取得できます。 参照住所:http://dev.mysql.com/doc/refman/5.6/en/show-profile.html。







先の:新参者の報告
次に:ブロックバスターニュース! ミニプログラム開発は無料です!
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com