欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

网站服务器cpu占用高百分百(mysql数据库专用cpu高优化)

程序员文章站 2022-06-19 09:49:31
当我们的网站突然打开很慢,登录服务器查看资源消耗时,cpu显示100%,资源管理器显示mysql占用高,我们怎么进行排查问题呢,排查到问题后怎么优化呢,小编为大家提供MySQL CPU 使用率高的原因和解决方法!...

当我们的网站突然打开很慢,登录服务器查看资源消耗时,cpu显示100%,资源管理器显示mysql占用高,我们怎么进行排查问题呢,排查到问题后怎么优化呢,小编为大家提供MySQL CPU 使用率高的原因和解决方法!

我举例是window图形界面操作,centos可以类推,在资源管理器中查看到mysql占用高,可以想到的问题是db服务器已经超负荷运行了,db服务器就是增删改查的操作,一般是执行sql语句的效率问题,说明有sql执行效率很低,需要优化执行语句。

1、如何排查sql的执行语句效率低问题

首先开启mysql的慢查询日志记录,把执行时间长,效率低的语句记录到日志中,到日志中分析问题排查问题

在mysql配置myd.ini文件中


slow_query_log=1
long_query_time = 1(1秒)
第一句是是否开启慢查询日志,1表示是,0表示否;第二句是执行语句的时间超过多少时间的记录日志,单位秒,我这里是超过1秒的为慢日志,记录下来。


配置好命令后,重启mysql服务,等待一定的时间,到mysql的data文件夹下面会生成一个.log的日志文件,即为慢日志。

2、这是你就可以打开文本日志,分析语句,比如:


SELECT id,title,most_top,view_count,posttime FROM article 
where status=3 AND catalog_id in (select catalog_id from catalog where catalog_id=17 or parent_id=17)  
order by most_top desc,posttime desc limit 0,8
实际执行查询起来很慢,需要6秒左右,当然你可能会在mysql高并发下查询会更慢,如果没有高并发的情况下可能1-2秒


3、从表的设计上来看并没有问题,该建立的索引都有建立,用explain分析语句,发现进行了大数据的排序,修改排序字段后效果明显,时间缩短到0.02秒。

其实这就需要程序员的优化语句能力了,分析语句,最后修改语句达到高效查询即可。

当然你的服务器资源占用高,还有其他手段,比如服务器配置提高,系统架构缓存,读写分离等。

好了,以上就是小编为大家提供的cpu占用高,mysql语句优化的思路,希望可以帮到你。