暂无图片
mysql能查看历史执行计划吗?会话级别的执行计划存放在那个组件中?
我来答
分享
暂无图片 匿名用户
mysql能查看历史执行计划吗?会话级别的执行计划存放在那个组件中?

mysql能查看历史执行计划吗?会话级别的执行计划存放在那个组件中?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
手机用户0306


是的,MySQL可以查看历史执行计划。

MySQL的执行计划是保存在performance_schema数据库中的events_statements_history和events_statements_history_long表中的。

你可以使用下面的SQL语句来查看历史执行计划:

SELECT * FROM performance_schema.events_statements_history WHERE DIGEST IS NOT NULL;

SELECT * FROM performance_schema.events_statements_history_long WHERE DIGEST IS NOT NULL;

这些表会记录所有执行过的语句的执行计划和性能统计信息。其中events_statements_history表只会保留最近的语句,而events_statements_history_long会保留所有历史语句。

digestive字段是语句的摘要,可以用来区分不同的语句。所以你可以根据这个字段找到某个特定语句的历史执行计划。

此外,performance_schema还提供了setup_consumers表,可以用来配置是否打开这些性能监控表的消费。可以通过配置这个表来控制是否记录execuution计划和语句性能。

所以MySQL通过performance_schema提供了完整的SQL执行性能跟踪和历史统计功能。

暂无图片 评论
暂无图片 有用 1
豆宇斯
2023-12-07
AI 会瞎编
豆宇斯
MySQL不记录历史执行计划,目前也没找到有什么工具支持
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏