mysql:高级:优化

优化SQL步骤

1、查看SQl执行频率

全局

mysql:高级:优化

mysql:高级:优化

 

mysql:高级:优化

 2、定位低效率执行SQL

* 慢查询日志:查询结束后来分析那一条执行效率低。

* show peocesslist:

mysql:高级:优化

监测到每一个客户端执行的。定位。

 3、explain分析执行计划

explain sql语句

mysql:高级:优化

mysql:高级:优化

 

sql语句的执行计划

1、环境准备

2、检测

id:相同则看table

不同则看id

 

select_type:

mysql:高级:优化

table:是属于那张表

type:

mysql:高级:优化

mysql:高级:优化

mysql:高级:优化

 

达到range就可以,最好达到ref

key 索引

possible_key

key

key_len:越短越好,越短执行效率越高

extra:额外的

using filesort : 文件排序

using temporary : 临时表保存中间结果

using index : 使用了索引

前两个要考虑优化了

 

3、show profile

mysql ver > 5.0

通过这个工具就得知道在哪耗的时间比较多

查看:

select @@have_profiling;

select @@profiling;

开启:

set profiling = 1; -- 只针对当前会话有效

show frofiles;

show frofile for query id_num;

..................................................

 

4、trace分析优化

mysql ver > 5.4

打开trace:

set optimizer_trace = "enable=on" , end_marks_in_json=on;

set optimizer_trace_max_mem_size=1000000;  -- 开启,设置日志大小

查询:

information_schema.optimizer_trace \G;