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

推薦する

Docker パッケージング ノード プロジェクトのプロセスの説明

バックエンド プログラマーとして、フロントエンドのものをいじらなければならないこともあります。そこで...

MySQLクエリ速度を最適化する方法

前の章では、高性能な MySQL に不可欠な、最適化されたデータ型の選択方法とインデックスの効率的な...

Windows で MySQL のルート パスワードをリセットする方法

今日、WordPress がデータベースに接続できないことがわかりました。ウィンドウ サーバーにログ...

内部 IP アクセスのみを許可する Nginx プロキシ設定を追加する方法

位置 / { インデックス index.jsp; proxy_next_upstream http...

Linux でコマンドまたはプロセスの実行時間を調べる方法

Unix ライクなシステムでは、コマンドまたはプロセスの実行がいつ開始されたか、またプロセスがどのく...

JavaScript Sandboxについての簡単な説明

序文:サンドボックスといえば、私たちの頭には反射的に上の写真が思い浮かび、すぐに興味がわいてくるかも...

CSS マルチレベルメニュー実装コード

これは、Web ページを Windows のスタート メニューなどのデスクトップ プログラムのように...

MySQLとRedisでセカンダリキャッシュを実装する方法の詳細な説明

Redis の紹介Redis は完全にオープンソースで無料であり、BSD プロトコルに準拠しており、...

Vue カスタム箇条書きボックス効果 (確認ボックス、プロンプトボックス)

この記事の例では、参考のためにVueカスタムポップアップ効果の具体的なコードを共有しています。具体的...

Vue2.x プロジェクトのパフォーマンス最適化のためのコード最適化の実装

目次1 v-ifとv-showの使用2. 計算と監視を区別する3 v-for トラバーサルでは、アイ...

JenkinsのLinuxインストール手順と各種問題解決(ページアクセス初期化パスワード)

1. Java環境jdk1.8を準備するJavaがインストールされているかどうかを確認します。イン...

IframeとFRAMEの違いの分析

1. Iframe タグの使用<br />Iframe については、「忘れられた隅」に放...

XHTML 入門チュートリアル: シンプルな Web ページの作成

1 分で最初の Web ページを作成します。簡単な Web ページを作ってみましょう。ぜひフォローし...

Antd+vueは円形属性フォームの動的検証のアイデアを実現します

必要な項目をループして検証するために、クエリ フォームのいくつかのプロパティを実装したいと考えていま...