MySQL 5.7 のパフォーマンスと sys スキーマの監視パラメータの説明 (推奨)

MySQL 5.7 のパフォーマンスと sys スキーマの監視パラメータの説明 (推奨)

1. パフォーマンス スキーマ: はじめに

MySQL 5.7 では、多数の新しい監視項目の導入、スペースと負荷の削減、新しい sys schema メカニズムによる使いやすさの大幅な向上など、パフォーマンス スキーマが大幅に改善されました。監視に関しては、パフォーマンス スキーマには次の機能があります。

①: メタデータロック:

セッション間のメタデータ ロックの依存関係を理解するために不可欠です。 MySQL 5.7.3 以降では、metadata_locks テーブルを使用してメタデータ ロックに関する情報を取得できます。

--どのセッションがどのメタデータロックを所有しているか
--メタデータロックを待機しているセッション
--デッドロックにより強制終了されたリクエスト、またはロック待機タイムアウトにより放棄されたリクエスト

②: 進捗状況の追跡:

長い操作 (テーブルの変更など) の進行状況を追跡します。MySQL 5.7.7 以降では、パフォーマンス スキーマによってステートメントの進行状況情報が自動的に提供されます。 events_stages_current テーブルを通じて現在のイベントの進行状況情報を表示できます。

③: 事務:

サービス層とストレージ エンジン層のトランザクションのあらゆる側面を監視します。 MySQL 5.7.3 以降では、events_transactions_current テーブルが追加されました。setup_consumers テーブルと setup_instruments テーブルを通じてトランザクション監視を有効にし、このテーブルを通じて現在のトランザクションのステータスを照会できます。オンライン データベースで、UNDO ログが大幅に増加し、データベースのパフォーマンスが急激に低下する状況が発生した場合は、このテーブルを使用して、コミットされていないトランザクションがあるかどうかを照会できます。実際にアクティブ状態のトランザクションが多数あることが判明した場合、データベース内にコミットされていないトランザクションが多数あると判断できます。

④: メモリ使用量:

メモリ使用量の統計情報を提供すると、サーバーのメモリ消費量を理解し、調整するのに役立ちます。 MySQL 5.7.2 以降では、パフォーマンス スキーマにメモリ関連の統計が追加され、アカウント、アクセス ホスト、スレッド、ユーザー、イベントの観点からメモリ使用量をカウントします。

⑤: ストレージプログラム:

ストアド プロシージャ、ストアド メソッド、イベント スケジューラ、およびテーブル トリガーの検出器。 MySQL 5.7 の setup_objects テーブルには、イベント、関数、プロシージャ、トリガーの検出器が追加されています。パフォーマンス スキーマは、object_schema と object_name に一致するテーブル内のオブジェクトを検出するために使用されます。

2. sysスキーマの概要:

MySQL 5.7 で追加された sys スキーマ。これは、一連のオブジェクト (ビュー、ストアド プロシージャ、ストアド メソッド、テーブル、トリガー) で構成されるスキーマです。スキーマ自体は情報を収集して保存しませんが、performance_schema と information_schema のデータを「ビュー」としてよりわかりやすい方法で要約します。

---sys スキーマは、一般的なチューニングおよび診断のユースケースに使用できます。これらのオブジェクトには、次の 3 つが含まれます。

①: パフォーマンス モード データを、よりわかりやすいビューに集約します。

②: パフォーマンススキーマの構成や診断レポートの生成などの操作のためのストアドプロシージャ

③: パフォーマンスモード設定を照会し、フォーマットサービスを提供するために使用されるストレージ機能

---クエリ内の sys スキーマの機能は、データベース サービス リソースの使用状況を確認することですか?データベース サーバーへのトラフィックが最も多いホストはどれですか?インスタンス上のメモリ使用量は?

3. sysスキーマ内のテーブルの分類:

①:ホスト関連情報:

host_summary で始まるビューは、主に IO レイテンシ情報を要約し、ホスト、ファイル イベント タイプ、ステートメント タイプなどの観点からファイル IO 情報を表示します。

②:InnoDB関連情報:

innodb で始まるビューは、innodb バッファ ページ情報と innodb ロック情報を待機しているトランザクションを要約します。

③: IO使用量:

IOから始まるビューは、IOの待機状況やIOの使用状況など、IOユーザーの情報をまとめ、さまざまな角度からグループ分けして表示します。

④: メモリ使用量:

「memory」で始まるビューには、ホスト、スレッド、ユーザー、イベントの観点からメモリ使用量が表示されます。

⑤: 接続とセッション情報:

その中で、プロセスリストとセッション関連のビューは、セッション関連の情報を要約します。

⑥:表関連情報:

schema_table で始まるビューには、完全なテーブルスキャンや InnoDB バッファー プールなどの側面からのテーブル統計が表示されます。

⑦:インデックス情報:

インデックスの使用状況、重複インデックス、未使用のインデックスをカウントするインデックス ビューが含まれています。

⑧:文章関連情報:

「statement」で始まるビューは、エラー、警告、完全なテーブル スキャン、一時テーブル、ソートなどの情報の数を含む、正規化されたステートメントの使用状況をカウントします。
⑨: ユーザー関連情報:

「user」で始まるビューは、ユーザーが使用したファイル IO、実行されたステートメントの統計などをカウントします。

⑨:待機イベント関連情報:

「wait」で始まるビューには、ホストとイベントの観点から待機イベントの遅延が表示されます。

4. sysスキーマの使用例:

--- テーブルへの訪問回数を表示します: (各テーブルへの訪問回数を監視したり、特定のライブラリへの訪問回数の変化を監視したりすることができます)
schema_table_statistics から table_schema、table_name、sum(io_read_requests+io_write_requests) を選択します。
schema_table_statistics から table_schema、table_name、io_read_requests+io_write_requests を io_total として選択します。
--- 冗長インデックスと未使用インデックスをチェックします: (schema_redundant_indexes と schema_unused_indexes はインデックスの状態をチェックします)
sys.schema_redundant_indexes\G から * を選択
sys.schema_unused_indexes から * を選択します。
(冗長なインデックスや長期間使用されていないインデックスがある場合は、適時にクリーンアップする必要があります。)
--- テーブルの自動インクリメント ID の使用状況を確認します。
schema_auto_increment_columns\G から * を選択 
(schema_auto_increment_columns ビューを使用すると、各テーブルの自動インクリメントの使用状況、さらには特定のテーブルの自動インクリメントの使用状況を簡単に確認できます)
--- テーブル全体のスキャンの SQL ステートメントを監視します。
sys.statements_with_full_table_scans から * を選択します。ここで、db='test2'\G
(statements_with_full_table_scans ビューを使用して、どのテーブル クエリがフル テーブル スキャンを使用しているかを確認します。exec_count は実行回数などの情報です)
--- インスタンスによって消費されるディスク I/O を確認します: ()
io_global_by_file_by_bytes から avg_io としてファイル、avg_read+avg_write を選択し、avg_io desc limit 10 で並べ替えます。
(io_global_by_file_by_bytes ビューをチェックして、過剰なディスク I/O 消費の原因を確認し、問題を特定します)

要約する

上記は、MySQL 5.7 のパフォーマンスと sys スキーマの監視パラメータの説明です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQL は information_schema オブジェクトの付与をバイパスし、ERROR 1044 (4200) エラーを報告します
  • MySQLデータベース設計:Pythonを使ったスキーマ操作方法の詳しい解説
  • エラー mysql テーブル ''performance_schema...解決方法
  • MySQLデータベース分析ツールSchemaSpyの使い方
  • mysql データベース内の information_schema と mysql を削除できますか?
  • MySQLのinformation_schemaデータベースの解析
  • MySQL データ型 DECIMAL の詳細な分析
  • よく使われる3つのMySQLデータ型
  • MYSQLについては、データ型と操作テーブルを知る必要があります
  • MySQL のデータ型とフィールド属性の原理と使用法の詳細な説明
  • mysql8.0.19 の基本データ型の詳細な説明
  • MySQL のデータ型とスキーマの最適化の詳細な説明

<<:  2019 年に最も役立ち重要なオープンソース ツール トップ 10

>>:  jsはシンプルな計算機を実装します

推薦する

WeChatアプレットがジグソーパズルゲームを実装

この記事では、WeChatアプレットでジグソーパズルゲームを実装するための具体的なコードを参考までに...

MySQL 5.7.20\5.7.21 無料インストール版のインストールと設定のチュートリアル

参考までに、mysql 5.7.20 / 5.7.21 をダウンロード、インストール、構成します。具...

Linux システムに Spring Boot アプリケーションをインストールするための詳細なチュートリアル

Unix/Linux サービスsystemd サービス操作プロセス1. JDKがインストールされたC...

docker に nacos をインストールしてデータベースを構成する詳細なチュートリアル

環境の準備 Docker環境 MySQL 5.7 (公式イメージはmysql8をサポートしていません...

MySQLデーモンの起動に失敗したエラーの解決方法

MySQLデーモンの起動に失敗したエラーの解決方法数日前、公開されたウェブサイトはこれらのアクティビ...

純粋な CSS3 で水平無限スクロールを実装するためのサンプル コード

この記事の例はすべて小さなプログラムで書かれていますが、実装される機能には影響しません。 wxmlル...

クラウドサーバーを購入し、Alibaba Cloud に Pagoda Panel をインストールする手順

アリババクラウドがサーバーを購入クラウドサーバーを購入し、サーバーバージョンとしてcentos 7....

Vue の下部ナビゲーション バー TabBar を実装するための非常に詳細なチュートリアル

目次プロジェクト紹介:プロジェクトディレクトリ: TabBar 効果のプレビュー: TabBar 実...

CSS のインライン スタイルに変換するソリューション (css-inline)

シーンについて話すメールを送信サードパーティのウェブサイトにHTMLを埋め込む他の編集者の記事をコピ...

Linux teeコマンドの使い方の詳しい説明

teeコマンドは主にstandout(標準出力ストリーム、通常はコマンド実行ウィンドウ)に出力し、同...

mysql コマンドライン スクリプトの実行例

この記事では、例を使用して MySQL コマンドライン スクリプトの実行について説明します。ご参考ま...

Dockerfile を使用して Node.js サービスをデプロイする方法

Dockerfileを初期化するプロジェクトの名前が express であると仮定して、expres...

長いデータを HTML で表示するときに処理する方法

HTML で長いデータを表示する場合、マウスをその上に移動するとデータを切り捨てて完全なデータを表示...

CentOS での samba フォルダ共有サーバー構成の詳細な説明

1. はじめに最近、CentOS での開発には多くの不便があることがわかりました。Windows/M...

CSS3 でテキストの点滅効果を実現する 3 つの方法 サンプルコード

1. 透明度を変更してテキストを徐々に点滅させると、次のような効果が得られます。 <!DOCT...