匿名用户mysql能查看历史执行计划吗?会话级别的执行计划存放在那个组件中?
mysql能查看历史执行计划吗?会话级别的执行计划存放在那个组件中?
我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
匿名用户mysql能查看历史执行计划吗?会话级别的执行计划存放在那个组件中?
是的,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
墨值悬赏