MySql问题纠错
- 查看cpu占用
$ top -o %CPU
# 进程是mysqld 也就是mysql daemon mysql的守护进程
``
2. 查看Mysql的线程情况
$ top -Hp pid
# 查询结果为一系列的线程ID
# 基本都是mysqld,守护线程,可以观察发现,守护进程基本不占用cpu
# 守护线程的ID都是连续的,如果突然出现几个不连续的线程ID,并且占用CPU,那么就是
- 在Navicat里面查询哪个IP在使用sql查询
SELECT
a. USER,
a. HOST,
a.db,
b.thread_os_id,
b.thread_id,
a.id processlist_id,
a.command,
a.time,
a.state,
a.info
FROM
information_schema. PROCESSLIST a,
`performance_schema` .threads b
WHERE
a.id = b.processlist_id
AND b.thread_os_id = 29162;
# 29162 用线程id替换
# 执行出来之后可能并没有结果,那就说明这个线程瞬间调用然后瞬间就回收了.
# 如果一个线程一直占用着,并且可以查出来,那么就说明有个客户的在捣乱,
- 查询线程执行的sql语句
SELECT
*
FROM
`performance_schema`.events_statements_current
WHERE
thread_id = (
SELECT
thread_id
FROM
`performance_schema` .threads
WHERE
thread_os_id = 28974
) ;
# 正常查不到,因为sql执行还是很快的,不会被捕捉到,如果被抓到,就说明这条语句执行非常慢,比如使用了连接查询或者类似的
![请添加图片描述](https://img-blog.csdnimg.cn/3a6bfff144ef4b8583e9b52dd883574c.png)