1. top命令实时查看cpu使用情况
主要看mysqld进程的cpu占用情况,确认是不是数据库导致的cpu跑满。
2. 开启数据库慢查询日志
mysql> set global slow_query_log=1;
mysql> show variables like '%slow_query_log%';
+---------------------+----------------------------------------------+
| Variable_name | Value |
+---------------------+----------------------------------------------+
| slow_query_log | ON |
| slow_query_log_file | /usr/local/mysql/var/VM-0-17-ubuntu-slow.log |
+---------------------+----------------------------------------------+
设置慢查询的时间阈值(单位:秒),即执行时长超过这个阈值(例如10,2,1秒)就判定为慢查询。
mysql> set global long_query_time=2;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'long_query_time%';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)
最后执行tail -f /usr/local/mysql/var/VM-0-17-ubuntu-slow.log 实时查看日志
日志会记录每条慢查询的执行时间,执行时长,sql语句详情。这样就能针对每条语句进行优化了。