1.在MySQL中,如何定位慢查询?
MySQL自带慢日志
2.一个SQL语句执行很慢, 如何分析?
可以采用EXPLAIN 或者 DESC命令获取 MySQL 如何执行 SELECT 语句的信息
3.字段分析
|---------------|-------------------------|-------------------------------------------------------------------|
| id            |                         |                                                                   |
| select_type   |                         |                                                                   |
| table         |                         |                                                                   |
| partitions    |                         |                                                                   |
| type          | 这条sql的连接的类型,性能有好到差      | NULL-->system-->const-->eq_ref-->ref-->range-->index-->all |
| type          | system                  | 查询系统中的表                                                           |
| type          | const                   | 根据主键查询                                                            |
| type          | eq_ref                  | 主键索引查询或唯一索引查询                                                     |
| type          | ref                     | 索引查询                                                              |
| type          | range                   | 范围查询                                                              |
| type          | index                   | 索引树扫描                                                             |
| type          | all                     | 全盘扫描                                                              |
| possible_keys | 当前sql可能会使用到的索引          |                                                                   |
| key       | 当前sql实际命中的索引            | 通过它们两个查看是否可能命中索引                                              |
| key_len   | 索引占用的大小                 | 通过它们两个查看是否可能命中索引                                              |
| ref           |                         |                                                                   |
| rows          |                         |                                                                   |
| filtered      |                         |                                                                   |
| Extra         | 额外的优化建议                 | 含义                                                                |
| Extra         | Using where;Using Index | 查找使用了索引,需要的数据都在索引中能找到,不需要回表查询数据                                   |
| Extra         | Using index condition   | 查找使用了索引,但是需要回表查询数据                                                |