order by优化
order by 可以用到索引,满足最左匹配原则,且几个列要升序和降须一致
慢查询日志
1、慢查询日志默认不开启,有需要再开启
查看状态
show variables like '%slow_query_log%';
开启
set global slow_query_log=1;
2、默认情况下,long_query_time的值为10s,可以通过命令修改这个值
查看
show variables like 'long_query_time';
修改
set global long_query_time = 3;
超过设置查询时间的sql语句会保存到log日志中,可以查看
3、利用mysqldumpslow命令分析慢查询日志log
show profiles分析
1、查看状态和开启
查看
show variables like 'profiling';
设置
set profiling = on;
2、查看执行的sql记录
show profiles;
诊断sql
show profile cpu,block io for query 上一步sql数字编号;
出现以下字段则有问题:
coverting HEAP to MyIsAM 查询结果太大,内存不够往硬盘上存了
Creating tmp table 创建临时表(拷贝数据到临时表,用完再删掉)
Copying to tmp table on disk 把内存中的临时表复制到磁盘,危险!!!
locked
全局查询日志
注意:只在测试环境中!!不要再生产环境用