暂无图片
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
打赏 0
豆宇斯
2023-12-07
AI 会瞎编
豆宇斯
MySQL不记录历史执行计划,目前也没找到有什么工具支持
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
MySQL中的 一个表进行批量删除和批量新增, 每次都是30-80条,qps大概在20左右,会出现delete因锁等待过久而执行耗时异常的情况?
回答 2
得看看是否是数据有重复dml的,然后没有提交影响到了
mysql插件安装问题
回答 1
[mysqld]pluginloadaddmysqlclone.socloneFORCEPLUSPERMANENT插件会在MySQL服务器启动时自动加载,确保了插件的持续可用性,即使服务器重启,插件也
某司数据被删,生产环境如何防范呢?
回答 5
说下俺的观点:正如叶老师在文章《又见删库》中所说,对于内部人员蓄意破坏来说是最难防范的,但是即便如此我们依然需要使用特定的手段来尽可能防止相同事件再次发生1、首先我认为运维人员应该树立正确的价值观,对
mysql触发器怎么做,屏蔽源数据?
回答 1
mysql没有Insteadof这句对原表不执行操作,只执行触发器的写法
mysql的web客户端常用的有哪些?
回答 2
安利一个免费神器DBeaver
MySQL有外键约束,能不能跳过约束直接删除从表再删主表?
回答 1
已采纳
外键约束的删除流程 就是 先删除从表,再删除主表啊。如果要跳过从表直接删除主表的话。 要看外键规则,但不建议这么干。常规做法是不在数据库做主外键约束,而在应用中做。
MySQL 自增的增长率怎么设置?
回答 1
已采纳
MySQL里面关于自增长的配置有两个autoincrementincrement:每次增加多少autoincrementoffset:空表主键起始值在Linux中需要在my.cnf中配置,重启服务后生
row格式下,表上没有任何索引,对于从库来说,回放线程需要执行的全表扫描的次数问题
回答 1
不是,只需要全表扫描一次。在ROW格式下,binlog中记录的是每一行的修改情况,所以在从库重放时,只需要读取一次全表的数据即可。但是对于像你提到的这种删除操作,由于没有索引,从库必须逐行检查是否满足
MySQL新增的数据为什么不会出现在最后,而是排序的方式插入?
回答 2
已采纳
索引组织表。所以必须以主键顺序来插入。
mysql 里面输入相同数据怎么操作?
回答 1
是想不允许重复?