EXPLAIN SELECT a.*, b.* FROM table1 a JOIN table2 b ON a.id=b.id WHERE a.id=1;
上述SQL语句通过EXPLAIN关键字可以查看执行计划结果集。执行计划结果集包含以下几个部分:
- id:每一个操作(如表扫描、索引扫描、排序等)都会有一个唯一的标识号
- select_type:表示查询的类型,如SIMPLE(简单查询)、PRIMARY(主查询)等
- table:表示MySQL要访问的表名
- partitions:表示MySQL要访问的分区名
- type:表示查询的连接类型,如ALL(全表扫描)、INDEX(索引扫描)等
- possible_keys:表示MySQL可以使用的索引
- key:表示MySQL实际使用的索引
- key_len:表示MySQL使用的索引长度
- ref:表示MySQL使用的索引列
- rows:表示MySQL要扫描的行数
- filtered:表示MySQL读取的数据比例
- Extra:表示MySQL执行计划中的其他信息,如Using filesort、Using temporary等。