MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  MySQL パフォーマンススキーマ  /  パフォーマンススキーマクエリー

27.5 パフォーマンススキーマクエリー

事前フィルタリングは収集されるイベント情報を制限し、特定のユーザーと関係ありません。 対照的に、事後フィルタリングは、各ユーザーが、事前フィルタリングの適用後に使用可能なイベントから選択するイベント情報を制限する、適切な WHERE 句でクエリーを使用することによって実行されます。

セクション27.4.3「イベントの事前フィルタリング」で、ファイルインストゥルメントの事前フィルタリング方法の例を示しました。 イベントテーブルにファイルと非ファイルの両方の情報が格納されている場合、事後フィルタリングはファイルイベントのみの情報を表示するもう 1 つの方法です。 イベント選択を適切に制限するには、クエリーに WHERE 句を追加します。

mysql> SELECT THREAD_ID, NUMBER_OF_BYTES
       FROM performance_schema.events_waits_history
       WHERE EVENT_NAME LIKE 'wait/io/file/%'
       AND NUMBER_OF_BYTES IS NOT NULL;
+-----------+-----------------+
| THREAD_ID | NUMBER_OF_BYTES |
+-----------+-----------------+
|        11 |              66 |
|        11 |              47 |
|        11 |             139 |
|         5 |              24 |
|         5 |             834 |
+-----------+-----------------+

「最もパフォーマンスの高いスキーマ」テーブルには、全テーブルスキャン以外の実行計画へのアクセス権をオプティマイザに付与するインデックスがあります。 これらのインデックスは、それらのテーブルを使用する sys スキーマビューなど、関連するオブジェクトのパフォーマンスも向上します。 詳細は、セクション8.2.4「パフォーマンススキーマクエリーの最適化」を参照してください。


関連キーワード:  テーブル, パフォーマンス, スキーマ, events, replication, イベント, 事前, history, 変数, status