MySQL でプロファイルを使用する方法のチュートリアル

MySQL でプロファイルを使用する方法のチュートリアル

プロフィールとは何ですか?

特定の SQL のパフォーマンスを分析したい場合に使用できます。

プロファイリングは MySQL 5.0.3 以降でのみ利用可能です。

プロファイルを開始すると、誤った記述を含むすべてのクエリが記録されます。

セッションを閉じるか、profiling=0 を設定してセッションを閉じます。 (profiling_history_size パラメータを 0 に設定すると、MySQL プロファイリングもオフになります。)

このツールを使用すると、SQL 実行ステータス、システム ロックやテーブル ロックに費やされた時間などを照会できます。

ステートメントの I/O 消費量と CPU 消費量を見つけることは非常に重要です。 (SQL ステートメントの実行によって消費される 2 つの最大のリソースは IO と CPU です)

--MySQL 5.7以降、プロファイル情報は徐々に廃止されます。MySQLではパフォーマンススキーマの使用を推奨しています。

MySQL公式サイトの定義

SHOW PROFILE および SHOW PROFILES ステートメントは、現在のセッション中に実行されたステートメントのリソース使用量を示すプロファイリング情報を表示します。

簡単に言えば、現在のセッション リソースの消費量です。

注意: show profile と show Profiles は推奨されておらず、MySQL の以降のバージョンでは削除される可能性があります。公式 Web サイトではパフォーマンス スキーマの使用を推奨しています。

使い方

このプロファイルはデフォルトで無効になっており、実稼働環境に推奨されます。

現在の環境のプロファイル設定を表示する

mysql> '%profiling%' のような変数を表示します。
+------------------------+-------+
| 変数名 | 値 |
+------------------------+-------+
| プロファイリングあり | はい |
| プロファイリング | オフ |
| プロファイリング履歴のサイズ | 15 |
+------------------------+-------+

profiling off はプロファイリングがオフになっていることを意味し、profiling_history_size 15 は最新の 15 個の SQL ステートメントのリソース消費を保存することを意味します。

プロファイル機能を有効にするには、次のコマンドを使用します。

グローバルプロファイリングを 1 に設定します。

次のコマンドを使用できます

プロフィールを表示します。

最新の 15 個の SQL ステートメントを表示します。

特定の項目の具体的な状況を表示する場合の SQL 形式は次のようになります。

プロフィールを表示 [タイプ [, タイプ] ... ]
 [クエリn]
 [LIMIT row_count [OFFSET offset]]

タイプ: {
 全て
 | ブロックIO
 | コンテキストスイッチ
 | CPU
 |IPC
 | メモリ
 | ページフォールト
 | ソース
 | スワップ
}

公式サイトでは、typeの各フィールドについて以下のように説明されています。

ALL すべての情報を表示します

BLOCK IOはブロック入力と出力操作のカウントを表示します。

CONTEXT SWITCHESは、自発的および非自発的なコンテキストスイッチの数を表示します。

CPUはユーザーとシステムのCPU使用時間を表示します

IPCは送受信されたメッセージの数を表示します

MEMORYは現在実装されていません

PAGE FAULTSはメジャーページフォールトとマイナーページフォールトの数を表示します。

SOURCEは、ソースコード内の関数名と、関数が存在するファイルの名前と行番号を表示します。

SWAPSはスワップカウントを表示します

プロファイリングはセッションごとに有効です。セッションが終了すると、現在のプロファイリング情報は失われます。

ユースケース

mysql> プロファイルを表示します。
+----------+-------------+----------------------------+
| Query_ID | 期間 | クエリ |
+----------+-------------+----------------------------+
| 1 | 0.00060275 | 顧客から*を選択 |
| 2 | 0.00222450 | テーブルを表示 |
| 3 | 0.00567425 | オフィスから*を選択 |
| 4 | 0.0005205​​0 | テーブルを表示 |
| 5 | 0.01123300 | 支払いから*を選択 |
| 6 | 0.00111675 | テーブルを表示 |
| 7 | 0.02049625 | 製品ラインから*を選択 |
+----------+-------------+----------------------------+

SQL 実行のトラブルシューティングを行う場合、またはどの SQL の実行が非常に遅いか、どこで遅いかを調べる場合、プロファイルは非常に便利なツールです。

SQL文がどこで使われているかを表示します

mysql> クエリ 7 のプロファイルを表示します。
+----------------------+----------+
| ステータス | 期間 |
+----------------------+----------+
| 開始 | 0.000043 |
| 権限を確認中 | 0.000005 |
| オープニングテーブル | 0.014552 |
| 初期化 | 0.000025 |
| システムロック | 0.000009 |
| 最適化中 | 0.000004 |
| 統計 | 0.000011 |
| 準備中 | 0.000010 |
| 実行中 | 0.000003 |
| データ送信中 | 0.005653 |
| 終了 | 0.000010 |
| クエリ終了 | 0.000009 |
| テーブルのクローズ | 0.000020 |
| アイテムを解放 | 0.000121 |
| クリーンアップ | 0.000023 |
+----------------------+----------+

情報が一目でわかるので、SQL 実行の概要を把握できます。

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • MySQL パフォーマンス分析ツール プロファイルの使用チュートリアル
  • SHOW PROFILE コマンドを使用して MySQL のパフォーマンスを分析する方法
  • MySQL でのプロファイル クエリ パフォーマンスの使用に関するチュートリアル
  • プロファイルを使用して遅い SQL を分析する MySQL の詳細な説明 (グループ左結合はサブクエリよりも効率的です)

<<:  Vue Element UI カスタム説明リストコンポーネント

>>:  Linux サーバーに SSH パスワードなしでログインする方法

推薦する

CSSフロートの特性についての簡単な説明

この記事では、CSS フロートの特徴を紹介します。皆さんと共有し、自分用のメモとして残したいと思いま...

ウェブサイトアイコンを追加するにはどうすればいいですか?

最初のステップは、アイコン作成ソフトウェアを準備することです。まず、いわゆるアイコンは拡張子 .ic...

React+Koa によるファイルアップロードの実装例

目次背景サーバーの依存関係バックエンド構成クロスドメインバックエンド構成の静的リソースアクセスではk...

mysql+mybatisはストアドプロシージャ+トランザクション+複数同時シリアル番号取得を実装します

データベースストアドプロシージャ`generate_serial_number_by_date` が...

MYSQL の COLLATE とは何ですか?

序文MySQL で show create table <tablename> コマンド...

Linux における「/」と「~」の違いの詳細な説明

「/」はルートディレクトリ、「~」はホームディレクトリです。 Linux ストレージはツリー状にマウ...

CSS フロントエンドの知識ポイントのまとめ(必読)

1. CSS の概念: (カスケーディング スタイル シート)利点: 1. コンテンツとプレゼンテ...

入力が完了したことを検出し、次のコンテンツを自動的に入力する HTML を実装する方法

前回の記事では、入力完了の簡単な検出を実現しましたが、今回はさらに一歩進んで、入力が完了した後に次の...

Linux で一般的なソフトウェアを設定する方法

新しいLinuxサーバーを入手する場合、通常は次の5つの構成を実行する必要があります。 HOSTAN...

MySQLデータを復元する2つの方法

1. はじめに少し前、開発者がテスト環境や本番環境で誤った操作をし、データベースを誤って削除/更新し...

MySQL の挿入ステートメントの使用実体験

目次1. 挿入のいくつかの構文1-1. 通常の挿入文1-2. 挿入または更新1-3. 挿入または交換...

MySQL 5.7.25 圧縮版のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 5.7.25圧縮版のインストールと設定方法を参考までに紹介します。具体的な...

HTML+CSS+JavaScript でガールフレンド版のスクラッチ カードを作成します (一度見ればすぐに覚えられます)

誰もがスクラッチ チケットで遊んだことがあると思います。子供の頃、ポケットにお金が入るとすぐに友達に...

CocosCreatorでシューティングゲームを作る詳しい解説

目次シーン設定ゲームリソース砲塔の回転動的に生成された弾丸衝突計算効果を高めるターゲットの動き弾薬庫...

マークアップ言語 - テキストの CSS スタイルを指定する

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...