events_statements_summary_by_digest 和 events_statements_history_long
时间: 2023-09-13 11:11:42 浏览: 54
events_statements_summary_by_digest和events_statements_history_long都是MySQL Performance Schema提供的用于监控数据库性能的表。
events_statements_summary_by_digest表存储了语句摘要(即语句的散列值)以及每个摘要相关语句的执行计数、执行时间、等待时间、锁定时间等信息。这些信息对于分析系统性能瓶颈非常有用。
而events_statements_history_long表则存储了每个语句的完整执行历史记录,包括执行时间、等待时间、锁定时间、返回结果等信息。这些信息对于深入分析每个语句的性能问题非常有用。
总的来说,events_statements_summary_by_digest表提供了语句执行的聚合统计信息,而events_statements_history_long表提供了每个语句的详细执行历史记录。两者结合使用可以更全面地了解数据库的性能状况。
相关问题
events_statements_history_long和events_statements_history有什么区别
events_statements_history 和 events_statements_history_long 都是 MySQL performance_schema 模块中的表,用于记录语句事件的信息。它们的区别在于记录的语句事件的长度。
events_statements_history 表记录的是最近执行的语句事件的信息,包括语句执行的时间、执行时间、消耗的 CPU 时间、返回的行数、锁等待时间、语句文本等。但是,该表中记录的语句文本的最大长度是由 performance_schema_events_statements_history_size 配置项控制的,默认值为 10,最大值为 100。
相反,events_statements_history_long 表记录的是较长的语句事件的信息,包括语句执行的时间、执行时间、消耗的 CPU 时间、返回的行数、锁等待时间、语句文本等。但是,该表中记录的语句文本的最大长度是由 performance_schema_events_statements_history_long_size 配置项控制的,默认值为 10000,最大值为 4294967295。
因此,如果需要记录较长的语句事件信息,可以使用 events_statements_history_long 表。需要注意的是,增加 performance_schema_events_statements_history_long_size 可能会影响性能和内存使用。
怎么清理events_statements_summary_by_digest表的数据
您可以使用以下语句清理events_statements_summary_by_digest表中的数据:
```sql
TRUNCATE TABLE performance_schema.events_statements_summary_by_digest;
```
执行上述语句会将该表中的所有数据删除并释放空间。请注意,TRUNCATE操作是不可逆的,因此在执行之前,请仔细检查您的数据备份和恢复策略。
如果您希望只删除一些旧的数据,而不是清空整个表,可以使用DELETE语句:
```sql
DELETE FROM performance_schema.events_statements_summary_by_digest WHERE last_seen < DATE_SUB(NOW(), INTERVAL 30 DAY);
```
上述语句将删除所有最后一次执行时间在30天前的语句摘要,您可以根据自己的需求进行调整。请注意,删除操作可能会影响性能,因此在执行之前请谨慎评估。