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はシンプルな計算機を実装します

推薦する

この記事ではCSSの組み合わせセレクターの使い方を説明します

CSS 組み合わせセレクターには、単純なセレクターのさまざまな組み合わせが含まれます。 CSS3 に...

Dockerはelasticsearchイメージを起動し、ディレクトリをマウントした後にエラーを解決します

docker hub から es イメージ (バージョン 6.4.2) をダウンロードしました。詳細...

Linuxでシンボリックリンクを削除(削除)するコマンド

Linux では、シンボリック リンクを作成または削除する必要がある場合があります。もしそうなら、何...

KVM ベースの SRIOV パススルー構成とパフォーマンス テストの詳細な説明

SRIOVの導入、VFパススルー構成、パケット転送速度性能テスト目次1. SRIOVの紹介2. 環境...

HTMLページのヘッダーコードは完全に明確です

以下のコードはすべて <head>...</head> の間にあり、具体的な...

MySQL で大量のデータ (数千万) を素早く削除するためのいくつかの実用的なソリューションの詳細な説明

著者は最近、仕事でパフォーマンスのボトルネックの問題に遭遇しました。MySQL テーブルには毎日約 ...

HTML テーブル境界制御実装コード

一般的に、テーブルを使用する場合は、常に <table border="1"...

SSH ポート転送、ローカル ポート転送、リモート ポート転送、動的ポート転送の詳細

パート 1 SSH ポート転送の概要カフェで無料Wi-Fiを利用しているとき、誰かがあなたのパスワー...

Windows での MySQL 8.0.15 の詳細なインストールと使用のチュートリアル

この記事では、MySQL 8.0.15の詳細なインストールと使用方法のチュートリアルを参考までに紹介...

Vue3のいくつかの利点についての簡単な説明

目次1. ソースコード1.1 モノレポ1.2 タイプスクリプト2. パフォーマンス2.1 ソースコー...

MySQL における UNION と UNION ALL の基本的な使い方

データベースでは、UNION キーワードと UNION ALL キーワードの両方が 2 つの結果セッ...

SpringBoot プロジェクトの Docker 環境を実行するときに発生する無限再起動問題の詳細な説明

もしかしたら私の考え方が間違っていたのかもしれないし、問題の説明が少し乱雑だったのかもしれないが、こ...

CentOS7でMySQL 5.7をアンインストールする方法

MySQLに何がインストールされているか確認する rpm -qa | grep -i mysql n...

Ubuntu ターミナル マルチウィンドウ 分割画面 ターミネーター

1. インストールターミネーターの最大の特徴は、1つのウィンドウで複数のターミナルを開くことができる...

MySQL 8.0.11 Mac 用インストール ガイド

MACはmysql8.0をインストールします。具体的な内容は次のとおりです。 1. ダウンロードアド...