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

推薦する

ページ内の検索エンジンの呼び出しはBaiduを例に挙げています

今日、突然、自分のウェブページで Google や Baidu のような強力な検索エンジンを呼び出す...

vue+element で動的スキニングを実装するためのサンプルコード

プロジェクトのテーマがすべての人の美的感覚を満足できないこともあります。このとき、スキン変更機能は非...

MySql ファジークエリ JSON キーワード取得ソリューションの例

目次序文オプション1:オプション2:オプション3:オプション4(最終的に採用されたオプション):要約...

MySQL学習エンジンの詳細な説明、説明、権限

エンジン導入InnodbエンジンInnodb エンジンは、データベース ACID トランザクションを...

Vue3サンドボックスの仕組みの詳しい説明

目次序文ブラウザコンパイル版ローカルプリコンパイルバージョン要約する参照する序文vue3サンドボック...

IE6 で PNG-24 形式の画像を正常に表示させる 2 つの方法

方法1: </html>の後に次のコードを追加してください。コードをコピーコードは次のと...

MySQL の最初のインストールが成功した後にパスワードを初期化する手順

ファイルをディレクトリに解凍しますこれは解凍後のディレクトリですmy.iniファイルを入力しますダブ...

CentOS 8 に MySql をインストールしてリモート接続を許可する方法

ダウンロードしてインストールします。まず、システムに MySQL または MariaDB があるかど...

知っておくべきHTML最適化テクニック

Web ページのパフォーマンスを向上させるために、多くの開発者は、JavaScript、画像の最適化...

Tencent Cloudでhive3.1.2を構築する方法を教えます

環境の準備操作を開始する前に、hadoop バージョンがインストールされていることを確認してください...

JavaScript で矢印関数を使用できないシナリオはどれですか

目次1. オブジェクトメソッドを定義する2. プロトタイプメソッドを定義する3. イベントコールバッ...

CentOS 7.2 は uniapp プロジェクトを展開するための nginx Web サーバーを構築します

Pantherは新人としてスタートし、今もまだ新人ですが、人々から学び、学んだことを時々皆さんと共有...

ハイパーリンクに関するいくつかの質問

<br />ポテトチップスパーティーのこのエピソードに参加して、何人かの友達に会えてとて...

Linux での中国語入力方法の問題を素早く解決する

背景: 最近、資産報告関連の機能に取り組んでおり、中国語入力をサポートする必要があります。通常のショ...