show profile命令
显示sql执行过程中各个环节的消耗情况,例如cpu使用情况,打开表、检查权限、执行优化器、返回数据等分别用了多长时间,可以分析语句执行慢的瓶颈在哪。
开启set profiling=1;
show profiles;
show profile all for query 179(query_id);
show status命令
我们可以使用SHOW STATUS命令来查看服务器的状态信息。
SHOW STATUS命令会显示每个服务器变量的名字和值,状态变量是只读的。我们可以在MySQL客户端下运行SHOW STATUS或者在命令行运用mysqladmin extended-status来查看这些变量。如果使用SQL命令,可以使用LIKE或者WHERE来限制结果。LIKE可以对变量名做标准模式匹配。
SHOW STATUS中混杂了全局和会话变量,其中许多变量有双重域:既是全局变量,也是会话变量,有相同的名字。如果只需要看全局变量,需要改为SHOW GLOBAL STATUS查看。
show global status ;
show status like 'Slow_queries%';
show status like 'Max_used_connections%';
show processlist 命令
show processlist 是显示用户正在运行的线程,需要注意的是,除了 root 用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。
show processlist; 查看100条
show full processlist; 查看所有
开启慢查询日志
show variables like '%slow%';
slow_launch_time 慢查询时间
slow_query_log OFF/ON 是否开启慢查询
slow_query_log_file 慢查询配置路径
pt-query-digest
慢查询日志分析工具