mysql cpu 占用高
答案:2 悬赏:20 手机版
解决时间 2021-04-11 04:46
- 提问者网友:欺烟
- 2021-04-10 21:53
我的服务器配置是2核 2g的 Linux系统,安装一个淘宝客系统,这个可以采集淘宝商品,一开始采集还可以,但是当数据表里面数量达到17万以上的时候,就显得特别慢,因为他在采集的时候 要查询这个东西是不是已经被采集过,应该去每采集一次就会扫表一次,,mysql进程占用 cpu 98%以上。我不相信是服务器配置不够所照成的,因为2核2g这个配置并不是很低,而且还是Linux系统,如果17w数据都带不动,那么Linux比Windows强不了多少,还不如Windows啊。不知道是不是我哪里配置 设置不对,要不要把表建立一个索引啊。我这个情况,请大侠指导。
最佳答案
- 五星知识达人网友:时间的尘埃
- 2021-04-10 23:03
简单的分为下面几个步骤来解决这个问题: 1、mysql运行正常,也有可能是同步设置问题导致 2、如果mysql运行正常,那就是php的一些sql语句导致问题发现,用root用户进入mysql管理 mysql -u root -p 输入密码 mysql:show processlist 语句,查找负荷最重的 SQL 语句,优化该SQL,比如适当建立某字段的索引。 通过这个命令我看到原来是有人恶意刷搜索,因为dedecms搜索后面调用搜索最高的词,导致很多人用工具刷这个,而且是定时有间隔的,所以将这个php程序改名跳转都方法解决了。 当然如果你的确实是sql语句用了大量的group by等语句,union联合查询等肯定会将mysql的占用率提高。所以就需要优化sql语句,网站尽量生成静态的,一般4W ip的静态网站,mysql占用率几乎为0的。所以这对于程序员的经验是个考虑。尽量提高mysql性能 (MySQL 性能优化的最佳20多条经验分享)
全部回答
- 1楼网友:妄饮晩冬酒
- 2021-04-11 00:09
有多个原因可至cpu高占用,当访问数量非常高的时候,安装程序没有完成,自身的更新进行过程,都会发生。
可将网络断开,让数据库在无访问情况下,看占用高不高,
再就是大的访问量的情况,如果是此原因引起的,那只能优化访问的语句,降低访问次数,我也见过一些人,无限制地任意使用sql语句,至数据库负荷重。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯