MySQL 8.4 发行说明
预过滤会限制收集哪些事件信息,它独立于任何特定的用户。相反,后过滤由各个用户通过使用具有适当的 WHERE
子句的查询来执行,这些子句会限制从应用预过滤后的可用事件中选择哪些事件信息。
在 第 29.4.3 节,“事件预过滤” 中,一个示例展示了如何对文件仪器进行预过滤。如果事件表包含文件和非文件信息,后过滤是另一种只查看文件事件信息的方法。向查询添加 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 |
+-----------+-----------------+
大多数 Performance Schema 表都有索引,这使优化器可以使用除了全表扫描以外的其他执行计划。这些索引还提高了相关对象的性能,例如使用这些表的 sys
模式视图。有关更多信息,请参见 第 10.2.4 节,“优化 Performance Schema 查询”。