一、explain分析SQL语句
1.1 影响服务器性能的几个方面:
1.服务器硬件
2.服务器的操作系统
3.数据库存储引擎的选择
4.数据库参数配置
5.数据库结构设计和SQL语句
1.2 SQL性能下降原因
- 查询语句写的不好
- 索引失效
- 关联查询太多join
- 服务器调优及各个参数设置
1.3 SQL加载顺序
1.3.1 手写SQL的顺序
select distinct
<select _list>
from
<left_table>
join <right_table> on <join_codition>
where
<where_condition>
group by
<group_by_list>
having
<having_condition>
order by
<order_by_condition>
limit <limit number>
1.3.2 机读的SQL顺序
1.4 MySQL常见瓶颈
- CPU:CPU在饱和的时候一般发生在数据装入内存或从磁盘读取数据的时候
- IO:磁盘I/O瓶颈发生在装入数据远大于内存容量的时候
- 服务器硬件的性能瓶颈
二、explain 的使用
使用方法: explain + SQL语句
2.1 explain是什么?
使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。
2.2 explain能干什么?
- 表的读取顺序
- 数据读取操作的操作类型
- 那些索引可以使用
- 那些索引被实际使用
- 表之间的引用
- 每张表有多少行被优化器查询
2.3 explain字段解释
从最好到最差依次是
system > const > eq_ref > ref > range > index > ALL