MySQL 8.4 Release Notes
29.5 性能模式查询
预过滤限制了哪些事件信息被收集,并且与任何特定用户无关。相反,后过滤是由个别用户通过使用适当的 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节“优化性能模式查询”。