MySQL 実行ステータスの表示と分析

MySQL 実行ステータスの表示と分析

MySQL のパフォーマンスに問題があると思われる場合は、通常、まずshow processlistを使用して現在の MySQL 実行ステータスを確認します。次に例を示します。

状態列の情報は非常に重要です。まず各列の意味を確認し、次に共通の状態ステータスを確認します。

列の意味

1. id

ステートメントを強制終了する場合に使用するフラグ。例: mysql> kill 207;

2. ユーザー

現在のユーザーを表示します。root でない場合は、このコマンドは権限範囲内の SQL ステートメントのみを表示します。

3. ホスト

ステートメントが送信されたIPとポートを表示します。これにより、問題のあるステートメントを発行したユーザーを追跡できます。

4.db

このプロセスが現在どのデータベースに接続されているかを表示します

5. コマンド

現在の接続で実行されたコマンド(通常はスリープ、クエリ、接続)を表示します。

6. 時間

この状態の継続時間(秒)

7. 状態

現在の接続を使用して SQL ステートメントのステータスを表示します。これは非常に重要な列です。状態は、ステートメント実行における特定の状態です。たとえば、クエリは完了する前に、tmp テーブルへのコピー、結果のソート、データの送信という状態を経る必要があります。

8.情報

この SQL 文を表示します。長さの制限があるため、長い SQL 文は完全には表示されませんが、問題文を判断するための重要な基準となります。

状態 共通状態分析

1. 睡眠

通常、リソースが解放されないことを意味します。接続プール経由の場合、スリープ状態は一定の範囲内で一定である必要があります。例:

データのクエリ時間は 0.1 秒ですが、ネットワーク出力には約 1 秒かかります。元のデータ接続は 0.1 秒で解放できますが、フロントエンド プログラムはクローズ操作を実行せず、結果を直接出力するため、結果がユーザーのデスクトップに表示されるまでデータベース接続はスリープ状態のままになります。

2. ロックされています

操作はロックされています。通常、innodb を使用すると、ロック状態の発生を効果的に減らすことができます。

3. tmpテーブルにコピーする

インデックスと既存の構造がクエリ条件をカバーできない場合、クエリ要件を満たすために一時テーブルが作成され、大きな I/O 圧力が発生します。Copy to tmp table は通常、テーブル結合クエリに関連しています。関連するクエリを減らすか、クエリ ステートメントを徹底的に最適化することをお勧めします。この状態でステートメントの実行時間が長すぎると、他の操作に重大な影響を及ぼします。この場合、操作を強制終了できます。

4. データの送信

データ送信はデータを送信することではなく、物理ディスクからデータを取得するプロセスです。結果セットの数が多い場合は、異なるディスクフラグメントからデータを抽出する必要があります。送信データ接続が多すぎる場合は、通常、クエリの結果セットが大きすぎる、つまりクエリのインデックス項目が十分に最適化されていないことが原因です。

5. 結果をクエリキャッシュに保存する

この状態が頻繁に発生する場合は、 set profilingを使用して分析します。リソース オーバーヘッドが SQL オーバーヘッド全体の大きな割合を占めている場合 (オーバーヘッドが非常に小さい場合でも、割合を確認します)、クエリ キャッシュが断片化されていることを意味します。flush flush query cache使用してすぐにクリアします。クエリ キャッシュ パラメータを適切に設定できます。

MySQL データベースの一般的な 2 つのボトルネックは、CPU と I/O のボトルネックです。CPU の飽和は通常、データがメモリにロードされるか、ディスクから読み取られるときに発生します。ディスク I/O ボトルネックは、ロードされたデータがメモリ容量よりはるかに大きい場合に発生します。アプリケーションがネットワーク上に分散されている場合、クエリ量が非常に大きいときにネットワーク上でボトルネックが発生します。システムのパフォーマンス状態を表示するには、mpstat、iostat、sar、vmstat を使用できます。

サーバーハードウェアのパフォーマンスボトルネックに加えて、MySQL システム自体についても、ツールを使用してデータベースのパフォーマンスを最適化することができます。通常、インデックスを使用する、EXPLAIN を使用してクエリを分析する、MySQL の内部構成を調整するという 3 つのタイプがあります。

MySQL を最適化する場合、通常はデータベースを分析する必要があります。一般的な分析方法には、スロー クエリ ログ、EXPLAIN 分析クエリ、プロファイリング分析、および show コマンド クエリ システム ステータスとシステム変数などがあります。パフォーマンスのボトルネックを特定して分析することによってのみ、データベース システムのパフォーマンスをより適切に最適化できます。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • MySQLデータベースのスケジュールバックアップを実装する方法
  • JDBC を使用して MySQL を操作するための簡単な分析では、Class.forName("com.mysql.jdbc.Driver") を追加する必要があります。
  • MySQLデータベースとOracleデータベース間のバックアップをインポートする
  • php+mysql によって開発された最もシンプルなオンライン質問バンク (オンライン質問システム)
  • MySQLでSQL文がどのように実行されるかの詳細な説明
  • MySQL データベース 8 - データベース内の関数の適用の詳細な説明
  • MySQLのダウンロードとインストールのプロセスの詳細な説明
  • MySQL LOAD_FILE() 関数メソッドの概要
  • MySQL 8.0.15 のダウンロードとインストールの詳細なチュートリアルは初心者にとって必須です。
  • クエリでのMySQLのユニークキーの使用と関連する問題

<<:  Vue+js 矢印をクリックして画像を切り替える

>>:  Linux でサーバーに接続するための SSH と Xshell の設定に関するチュートリアル (画像付き)

推薦する

カルーセルアニメーションを実現するVueコンポーネント

この記事では、カルーセルアニメーションを実現するためのVueコンポーネントの具体的なコードを例として...

Dayjs を使用して Vue で一般的な日付を計算する方法

vue を使用してプロジェクトを開発する場合、フロントエンドでは次のような日付と時刻を計算する必要が...

VueはSplitを使用して、ユニバーサルドラッグアンドスライドパーティションパネルコンポーネントをカプセル化します。

目次序文始める基本レイアウトデータバインディングイベントバインディング最適化ジッター問題を最適化する...

MySQLのネクストキーロックのロック範囲についての簡単な説明

序文ある日、突然 MySQL の次のキー ロックについて尋ねられ、私の即座の反応は次のようなものでし...

VMware Workstation のインストール Linux システム

始める段階から初心者になるまで、Linux オペレーティング システムは不可欠です。最初のステップは...

...

CSSを使用して複数の画像を中央に水平に表示する方法

まず実装手順について説明します。最終結果 2. コードの実装HTML部分 <div class...

MySQL水平および垂直テーブル変換操作の実装方法

この記事では、例を使用して、MySQL の水平テーブルと垂直テーブル間の変換操作を実装する方法を説明...

MySQLで適切なインデックスを選択する方法

まずは栗を見てみましょう EXPLAIN select * from employees where...

ウェブサイトがhttpsを有効にした後のSSLのセキュリティ構成と検出

最近のウェブサイトでは SSL を有効にするのが標準となっています。ただし、SSL を設定した後も、...

過去2年間のユーザーエクスペリエンス

<br />国内のウェブサイトが本格的に普及し、ユーザーエクスペリエンスに重点が置かれる...

ElementUIはel-formフォームリセット機能ボタンを実装します

目次ビジネスシナリオ:効果のデモンストレーション:ビジネスシナリオ: el-form を使用する場合...

Golang を使って Docker API を実際に操作する

目次SDKのインストールローカル Docker の管理コンテナの実行バックグラウンドでコンテナを実行...

axiosリクエストをvueでカプセル化する方法

実際、Vueでaxiosをカプセル化するのは非常に簡単ですまず、srcパスにhttpフォルダを作成し...

Nginx ストリーム構成プロキシ (Nginx TCP/UDP ロード バランシング)

序章nginx が優れたリバース プロキシ サービスであることは誰もが知っています。nginx を使...