昨天有一道笔试题是问mysql慢查询的,总结一下。
show status; // 查询mysql数据库的一些运行状态
show status like 'uptime'; // 查看mysql数据库启动多长时间,myisam存储引擎长时间启动需要进行碎片整理
查看慢查询
show status like 'slow_queries';
查询慢查询时间
show variables like 'long_query_time';
设置慢查询时间:当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。
set long_query_time = 0.5;
slow_query_log
这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。
slow_query_log_file
记录日志的文件名。
log_queries_not_using_indexes
这个参数设置为ON,可以捕获到所有未使用索引的SQL语句,尽管这个SQL语句有可能执行得挺快。