Documentation Home
MySQL 8.0 参考手册  / 第 27 章 MySQL 性能模式  /  27.5 性能模式查询

27.5 性能模式查询

预过滤限制收集哪些事件信息并且独立于任何特定用户。相比之下,后过滤由个人用户通过使用带有适当WHERE子句的查询来执行,这些子句限制从应用预过滤后可用的事件中选择什么事件信息。

第 27.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使用这些表的模式视图。有关详细信息,请参阅 第 8.2.4 节,“优化性能模式查询”