mysql:高级:优化
优化SQL步骤
1、查看SQl执行频率
全局
2、定位低效率执行SQL
* 慢查询日志:查询结束后来分析那一条执行效率低。
* show peocesslist:
监测到每一个客户端执行的。定位。
3、explain分析执行计划
explain sql语句
sql语句的执行计划
1、环境准备
2、检测
id:相同则看table
不同则看id
select_type:
table:是属于那张表
type:
达到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;