MySQL 8.3 Release Notes
预过滤限制了哪些事件信息被收集,并且独立于任何特定的用户。相比之下,后过滤是由个体用户通过使用带有适当的 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 |
+-----------+-----------------+
大多数性能模式表都有索引,这使得优化器可以访问其他执行计划,而不是全表扫描。这些索引也改进了相关对象的性能,例如 sys
模式视图,它们使用这些表。有关更多信息,请参阅 第 10.2.4 节,“优化性能模式查询”。