この記事で共有したい内容が役立つことを願っています。MySQL5.7 では、新たに追加された多数の監視項目の導入を含め、パフォーマンス スキーマが大幅に改善され、占有スペースと負荷が削減されました。 、および新しい sys スキーマ メカニズムを通じてデータを表示することで、使いやすさが向上します。この記事では、MySQL5.7 のパフォーマンスおよび sys スキーマの監視パラメーターについて説明します。必要な方は参考にしてください。
1. パフォーマンス スキーマ: はじめに
MySQL5.7 では、多数の新たに追加された監視項目の導入、スペースと負荷の削減、および新しい sys スキーマのメカニズム。モニタリングの観点から、パフォーマンス スキーマには次の機能があります:
①: メタデータ ロック:
セッション間のメタデータ ロックの依存関係を理解することが重要です。 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 以降、パフォーマンス スキーマには、アカウント、アクセス ホスト、スレッド、ユーザー、イベントの観点からメモリ使用プロセスをカウントするメモリ関連の統計情報が追加されました。 storage メソッド、イベント ディスパッチャー、テーブル トリガーの検出器。 MySQL5.7 の setup_objects テーブルには、イベント、関数、プロシージャ、トリガーの新しいディテクタが追加されています。パフォーマンス スキーマは、テーブル内の object_schema と object_name に一致するオブジェクトを検出するために使用されます。これは、一連のオブジェクト (ビュー、ストアド プロシージャ、ストアド メソッド、テーブル、トリガー) で構成されるスキーマであり、それ自体は情報を収集して保存しませんが、データをよりわかりやすい方法で Performance_schema と information_schema に要約します。ビュー"。
---sys スキーマは、一般的なチューニングと診断のユースケースに使用できます。これらのオブジェクトには、次の 3 つが含まれます:
①: パフォーマンス パターン データをよりわかりやすいビューに要約します。
⑨: ユーザー関連情報:
ユーザーで始まるビューは、使用されたファイル IO をカウントします。ユーザーによる、実行されたステートメント統計など
⑨: 待機中のイベント関連情報
:wait で始まるビューは、ホストとイベントの観点から待機中のイベントの遅延を示します。
4. Sys スキーマの使用例:
---查看表的访问量:(可以监控每张表访问量的情况,或者监控某个库的访问量的变化) select table_schema,table_name,sum(io_read_requests+io_write_requests) from schema_table_statistics; select table_schema,table_name,io_read_requests+io_write_requests as io_total from schema_table_statistics; ---冗余索引和未使用索引的检查:(schema_redundant_indexes和schema_unused_indexes查看索引的情况) select * from sys.schema_redundant_indexes\G select * from sys.schema_unused_indexes; (如果有冗余索引和长期未使用的索引,应该及时清理,) ---查看表自增ID使用情况: select * from schema_auto_increment_columns\G (可以使用schema_auto_increment_columns视图,就能很简单的查到每个表的自增量使用情况,甚至可以精确到某个表的自增量情况) ---监控全表扫描的sql语句: select * from sys.statements_with_full_table_scans where db='test2'\G (使用statements_with_full_table_scans视图可以查看哪些表查询使用了全表扫描,其中exec_count是执行的次数,等信息) ---查看实例消耗的磁盘I/O情况:() select file,avg_read+avg_write as avg_io from io_global_by_file_by_bytes order by avg_io desc limit 10; (查看io_global_by_file_by_bytes视图可以检查磁盘I/O消耗过大的原因,定位问题)
関連する推奨事項:
よく使用されるいくつかの mysql 監視スクリプト コマンド
Mysql innodb監視(システム層、データベース層)サンプルコード詳細解説
以上がMySQL5.7のパフォーマンスおよびsysスキーマのパラメータを監視する詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。