ITPub博客

首页 > 数据库 > 数据库开发技术 > MySQL information_schema详解 OPTIMIZER_TRACE

MySQL information_schema详解 OPTIMIZER_TRACE

原创 数据库开发技术 作者:ibsbforever 时间:2019-12-24 21:27:00 0 删除 编辑

 

往期专题请查看
这是一个坚持Oracle,Python,MySQL原创内容的公众号

这个专题主要讲information_ schema数据库下的一些表

如无特殊说明数据库版本为MySQL 5.7.26

1. OPTIMIZER_TRACE

该表存放着针对SQL语句的优化器追踪(optimizer tracing )的相关信息,用来分析SQL语句执行情况

设置optimizer_trace系统变量来开启该功能
他有如下栏位

  • QUERY  被追踪的SQL语句文本

  • TRACE 追踪信息,以JSON形式表现

  • MISSING_BYTES_BEYOND_MAX_MEM_SIZE  当trace信息超过了
    optimizer_trace_max_mem_size 的值,则会被截断(不完整),该栏位显示丢失的字节数

  • INSUFFICIENT_PRIVILEGES 如果被追踪的SQL使用了没有其权限的view或routines,则TRCE栏位为空且此栏位会显示为1

2. Tracing the Optimizer

这里简单说下追踪优化器

一个会话只能追踪其本身执行的语句,不能追踪其他会话的

SET optimizer_trace="enabled=on";

select user,host from mysql.user;

SELECT * FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE\G

SET optimizer_trace="enabled=off";

注意该表只会显示显示一个语句的记录,后面的追踪会覆盖前一个,哪怕是存储过程中的调用

如果需要可使用如下语句调整

 SET optimizer_trace_offset=<OFFSET>, optimizer_trace_limit=<LIMIT>

我们可以针对如下语句进行追踪

  • SELECT; INSERT or REPLACE

  • UPDATE/DELETE

  • 以explain开头的语句

  • SET语句

  • DO; DECLARE/CASE/IF/RETURN (stored routines language elements); CALL


3. 实际截图

SELECT * FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE\G



4. 参考链接

https://dev.mysql.com/doc/refman/5.7/en/optimizer-trace-table.html

https://dev.mysql.com/doc/internals/en/optimizer-tracing.html

可点击阅读原文获得更好的阅读体验,推荐在PC端阅读

也可在公众站内搜索中回复  information_schema 搜索相关内容

或直接打开个人网页搜索


http://


往期专题包括:


  • Python 自动化运维

  • MySQL  安装

  • mysqldump命令详解

  • mysqlbinlog命令详解

  • xtrabackup工具详解

  • 打造属于自己的监控系统

  • Python爬虫基础

  • Oracle awr报告全解析

  • Oracle ASM全解析

  • Oracle Data Guard全解析

  • Oracle ClusterWare全解析

  • Oracle常见参数解析

  • Oracle常见故障处理

  • Oracle SQL优化案例


觉得文章不错的欢迎关注,转发,收藏,点赞~

原文作者:宅必备;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
Oracle,MySQL DBA,Python自动化运维

注册时间:2019-01-29

  • 博文量
    245
  • 访问量
    243923