MySQL 工具使用笔记
Table of Contents
1. 索引
1.1. explain 工具
直接通过在 query 的前面添加 explain
关键字就可以得到查询计划
explain select * from t;
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | t | NULL | ALL | NULL | NULL | NULL | NULL | 6 | 100.00 | NULL |
1.2. 使用 optimize trace 工具
开启 optimize trace 工具,先开启配置项,结果在 information_schema.optimizer_trace
查看结果
{ "steps": [ { "join_preparation": { "select#": 1, "steps": [ { "expanded_query": "/* select#1 */ select count(0) AS `count(*)` from `t`" } ] } }, { "join_optimization": { "select#": 1, "steps": [ { "table_dependencies": [ { "table": "`t`", "row_may_be_null": false, "map_bit": 0, "depends_on_map_bits": [ ] } ] }, { "rows_estimation": [ { "table": "`t`", "table_scan": { "rows": 6, "cost": 0.25 } } ] }, { "considered_execution_plans": [ { "plan_prefix": [ ], "table": "`t`", "best_access_path": { "considered_access_paths": [ { "rows_to_scan": 6, "access_type": "scan", "resulting_rows": 6, "cost": 0.85, "chosen": true } ] }, "condition_filtering_pct": 100, "rows_for_plan": 6, "cost_for_plan": 0.85, "chosen": true } ] }, { "attaching_conditions_to_tables": { "original_condition": null, "attached_conditions_computation": [ ], "attached_conditions_summary": [ { "table": "`t`", "attached": null } ] } }, { "optimizing_distinct_group_by_order_by": { } }, { "finalizing_table_conditions": [ ] }, { "refine_plan": [ { "table": "`t`" } ] }, { "considering_tmp_tables": [ ] } ] } }, { "join_execution": { "select#": 1, "steps": [ ] } } ] }