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

推薦する

一般的な JavaScript 文字列メソッド 28 個と使用方法のヒントのまとめ

目次序文1. 文字列の長さを取得する2. 文字列の指定された位置の値を取得する(1) charAt(...

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

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

CSSページ下部固定を実現する8つの方法の詳細な説明

ページを書いているときに、ページの内容が小さくてフッターがページの真ん中に留まってしまうといった状況...

Docker で Kong API Gateway をインストールして使用する詳細なチュートリアル

1 はじめにKong は単純な製品ではありません。この記事で言及されている Kong は主に Kon...

dockerを使用してdubboプロジェクトをデプロイする方法

1. まず、Springbootを使用して簡単なDubboテストプログラムを構築し、関連する依存関係...

MySQLのパラメータについてお話しましょう

序文:以前の記事では、特定のパラメータの機能についてよく紹介してきました。しかし、MySQL パラメ...

Linux sar コマンドの使用方法とコード例の分析

1. CPU使用率sar -p (一日中表示) sar -u 1 10 (1: 1秒ごと、10: 1...

Webpackプラグインを書いてnpmに公開するための80行のコード

1. はじめに最近、 Webpackの原理を勉強しています。これまでは Webpack の設定方法し...

Docker Composeのデプロイと基本的な使い方の詳しい説明

1. Docker Composeの概要Compose は、マルチコンテナ Docker アプリケー...

Vueはカスタム命令を使用してページの下部に透かしを追加します

プロジェクトシナリオプロジェクトの背景全体にカスタム透かしを追加します。透かしのテキスト、フォントの...

登録フォームのデザインルール

随分前に「Patterns for Sign Up & Ramp Up」を読み終えました。今...

HTMLフォームのいくつかの送信方法の概要

最も一般的で、最もよく使用され、最も一般的な方法は、submit タイプを使用することです。コードを...

HTMLファイルとは何ですか?HTMLファイルを開く方法

HTML は Hypertext Markup Language の略です。現在、ほとんどの Web...

JavaScript における継承の 3 つの方法

継承する1. 継承とは何か継承: まず、継承とは関係、つまりクラス間の関係です。JS にはクラスはあ...

MySQL パスワード変更方法の概要

MySQL 5.7 より前のバージョンのパスワードを変更する方法:方法1: SET PASSWORD...