optimizer_trace 开启影响性能,用完记得关闭
关闭语句:
SET SESSION optimizer_trace="enabled=off";
1,打开trace
SET SESSION optimizer_trace="enabled=on",end_markers_in_json=ON;
2,跟踪执行计划
①先执行查询sql
②在执行 SELECT * FROM information_schema.OPTIMIZER_TRACE;
SELECT * FROM test WHERE id=5;
SELECT * FROM information_schema.OPTIMIZER_TRACE;
字段大致含义:
join_preparation : 第一阶段: SQL 准备阶段, 格式化 sql
join_optimization:第二阶段: SQL 优化阶段
condition_processing:条件处理
able_dependencies:表依赖详情
rows_estimation:预估表的访问成本
table_scan:全表扫描情况
rows : 扫描行数
cost:查询成本
potential_range_indexes:查询可能使用的索引
PRIMARY:主键索引
index :索引名称:辅助索引
analyzing_range_alternatives:分析各个索引使用成本
rowid_ordered:使用该索引获取的记录是否按照主键排序
index_only:是否使用覆盖索引
best_access_path:最优访问路径
considered_access_paths:最终选择的访问路径