mysql cpu占用率过高_mysql cpu使用率过高解决方法

mysql cpu使用率过高解决方法

1 mysql查看正在运行的语句 并且查看运行最多的mysql语句

MySQL 打开 general log 后,所有的查询语句都会记录在 general log 文件,文件为只读方式,但这样general log文件会非常大,所以默认是关闭的。

但有时需要查错等原因,暂时需要打开general log。

打开方法:

select version();//我的是5.6是支持一个日志的开启。

set global general_log=1;//开启查询日志

set global log_output='TABLE';//general_log支持输出到table: 如果开启了table就会输出到数据库表中 不会输出到文件中

select * from mysql.general_log\G;//查询所有sql语句的使用

select * from (select argument, count(*) as number from mysql.general_log group by argument)t

order by number DESC;//降序排列使用最多的sql语句,值是mysql 的基本功哈。

建议开了1分钟后可以关了 可以进行优化了 然后优化完了 可以清除表再开启测试

set global general_log = off; // 关闭查询日志

日记

2 mysql慢查询日记

#必须写到mysqld 注意给/tmp/showslowmysql.log 775权限 要写入权限

[mysqld]

#开启慢查询日记

slow_query_log = 1

#设置日记路径

slow_query_log_file = /tmp/showslowmysql.log

#超过1秒 就代表慢查询记录到日志

long_query_time=1

mysql> show variables like '%query%';

+------------------------------+------------------------+

| Variable_name | Value |

+------------------------------+------------------------+

| binlog_rows_query_log_events | OFF |

| ft_query_expansion_limit | 20 |

| have_query_cache | YES |

| long_query_time | 1.000000 |

| query_alloc_block_size | 8192 |

| query_cache_limit | 1048576 |

| query_cache_min_res_unit | 4096 |

| query_cache_size | 1048576 |

| query_cache_type | OFF |

| query_cache_wlock_invalidate | OFF |

| query_prealloc_size | 8192 |

| slow_query_log | ON |

| slow_query_log_file | /tmp/showslowmysql.log |

+------------------------------+------------------------+

13 rows in set

运行mysql语句select sleep(1);

然后查看慢查询日志 cat /tmp/showslowmysql.log

# Time: 170516 14:46:47

# User@Host: root[root] @ [122.224.247.131] Id: 67

# Query_time: 1.000352 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0

SET timestamp=1494917207;

select sleep(1);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值