mysql优化2-exists用法及order by及慢日志查询

 

exists 的用法

select * from t where t.deptId in (select id from s)   等于

select * from t where exists (select 1 from s where s.id=t.deptId)

 

order by

 

慢日志查询( show global status like '%Slow_queries%';查询系统慢查询数量 )

一般默认关闭,需要分析调优才开启

show VARIABLES like '%slow_query_log%';

set global slow_query_log=1;

设置记录阈值(默认10s,大于10s的查询会被记录到日志文件)

show VARIABLES like 'long_query_time%';

set global  long_query_time=3;

 

当重启mysql,慢日志配置失效,永久生效参考:

 

mysqldumpslow分析慢日志(在linux命令运行)

mysqldumpslow -s r -t 10 /www/server/data/mysql-slow.log(得到返回记录集最多的10个SQL)

mysqldumpslow -s c -t 10 /www/server/data/mysql-slow.log(得到访问次数最多的10个SQL)

mysqldumpslow -s t -t 10 -g "left join" /www/server/data/mysql-slow.log (得到按时间排序的前10条里含有左连接的SQL)

 

mysqldumpslow -s r -t 10 /www/server/data/mysql-slow.log | more (结合使用 | more,防止记录数过多爆屏)