优化目的
1)提高资源利用率;
2)避免短板效应;
3)提高系统吞吐量;
4)同时满足更多用户的在线需求。
优化目标
1)减少磁盘IO,在数据库中主要是来自于像全表扫描这种扫描大量数据块的场景,然后就是日志以及数据块的写入所 带来的压力。
2)减少网络带宽,主要是包括两个方面,第一,SQL查询时,返回太多数据;第二,插入场景下,交互次数过多。
3)降低CPU的消耗,主要包括三个方面,第一,MySQL本身的逻辑读,第二,额外的计算操作,比如排序分组 (order by group by),第三,是聚合函数(max,min,sum...)。
SQL优化常规流程及思路
第一:CPU使用率,是SQL查询关键资源指标,CPU的消耗一般来自于数据扫描与显式计算。
第二:IOPS,是衡量磁盘压力的指标,它指的是每秒IO请求的次数,对数据库来说,IOPS是物理读写的关键资源指标。
第三:QPS/TPS,指MySQL数据库的吞吐量,也能在一定程度上反映应用系统的业务压力。
第四:会话数/活跃会话数,一般在应用配置问题,没有合理使用到连接池,或者SQL执行效率较差的时候出现这类的指标异常问题,这些情况会导致数据库的Server端产生大量的会话,甚至会积压大量的活跃会话。
第五:Innodb逻辑读/物理读,这是主要用于反映数据库实例整体查询效率的引擎指标。
第六:临时表,通常来说,产生临时表往往意味着SQL执行效率的下降