Mysql
- 查看优化器状态
show variables like ‘optimizer_trace’;
- 会话级别临时开启【注意是session级会话】
set session optimizer_trace=“enabled=on”,end_markers_in_json=on;
- 设置优化器追踪的内存大小
set OPTIMIZER_TRACE_MAX_MEM_SIZE=1000000:
- 执行自己的SQL
select host.user.plugin from user; 。
执行自己的sql别复制我的这条示例
- information_schema.optimizer_trace表
SELECT trace FROM information_schema.OPTIMIZER_TRACE
- 导入到一个命名为xx,ace的文件,然后用SON阅读器来查看 【如果没有控制台权限,或直接交由运维,
让他把该rrace文件输出给你就行了。)
SELECT TRACE INTO DUMPFILE "E:\test.trace"FROM
INFORMATION_SCHEMA.OPTIMIZER_TRACE;
重点查看以下函数
- rows_estimation
- considered_excution_plans
- 举例
查看cost 指的是【CPU+IO】40512 大约是4s
{
"rows estimation":[
{
"table":"user infoui",
"table scan":{
"rows":9722376,
"cost":40512
}
}
]
}
- 写SQL 避免写一些隐式转换