这个专题主要讲information_ schema数据库下的一些表
如无特殊说明数据库版本为MySQL 5.7.26
该表存放着针对SQL语句的优化器追踪(optimizer tracing )的相关信息,用来分析SQL语句执行情况
设置optimizer_trace系统变量来开启该功能 他有如下栏位
这里简单说下追踪优化器
一个会话只能追踪其本身执行的语句,不能追踪其他会话的
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
SELECT * FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE\G
https://dev.mysql.com/doc/refman/5.7/en/optimizer-trace-table.html
https://dev.mysql.com/doc/internals/en/optimizer-tracing.html