Mysql数据库导致CPU很高的问题解决

服务器环境 Liunx AS4 + PHP5 + Mysql5 + Apache 2

实用TOP 命令查询系统性能的时候发现CPU经常到达100%

开始以为是DDOS攻击……加装了防火墙(没起作用)

又开始从liunx系统查找是不是系统问题,(也没起作用)

偶尔从网络上发现一篇文章,有人也类似遇到了这样的问题,但并没指出具体解决方案,

不过提醒了我,不是系统问题就是程序问题!

这次我开始从新过滤PHP代码,偶尔发现很多兄弟写的代码只有“常”连接,竟然没有Close!

我把所以的页面都加装了数据库关闭,发现CPU一直就保持在1%~10%之间(正常)

所以提醒大家在写PHP程序的时候不要为了一点懒,导致系统溢出这样低级的错误!

好了就写倒这里了,一个小问题花了我几乎一个下午搞这个!也算是教训!

把一些mysql常用函数贴上,请牢记!其他类型数据库举一反三!

mysql_affected_rows -- 取得前一次 MySQL 操作所影响的记录行数

mysql_change_user -- 改变活动连接中登录的用户

mysql_client_encoding -- 返回字符集的名称

mysql_close -- 关闭 MySQL 连接

mysql_connect -- 打开一个到 MySQL 服务器的连接

mysql_create_db -- 新建一个 MySQL 数据库

mysql_data_seek -- 移动内部结果的指针

mysql_db_name -- 取得结果数据

mysql_db_query -- 发送一条 MySQL 查询

mysql_drop_db -- 丢弃(删除)一个 MySQL 数据库

mysql_errno -- 返回上一个 MySQL 操作中的错误信息的数字编码

mysql_error -- 返回上一个 MySQL 操作产生的文本错误信息

mysql_escape_string -- 转义一个字符串用于 mysql_query

mysql_fetch_array -- 从结果集中取得一行作为关联数组,或数字数组,或二者兼有

mysql_fetch_assoc -- 从结果集中取得一行作为关联数组

mysql_fetch_field -- 从结果集中取得列信息并作为对象返回

mysql_fetch_lengths -- 取得结果集中每个输出的长度

mysql_fetch_object -- 从结果集中取得一行作为对象

mysql_fetch_row -- 从结果集中取得一行作为枚举数组

mysql_field_flags -- 从结果中取得和指定字段关联的标志

mysql_field_len -- 返回指定字段的长度

mysql_field_name -- 取得结果中指定字段的字段名

mysql_field_seek -- 将结果集中的指针设定为制定的字段偏移量

mysql_field_table -- 取得指定字段所在的表名

mysql_field_type -- 取得结果集中指定字段的类型

mysql_free_result -- 释放结果内存

时间: 2024-10-29 12:42:19

Mysql数据库导致CPU很高的问题解决的相关文章

iis webservice-求助:iis下的C# webservice部分请求不知道哪里卡住了,cpu很高,处理时间很长

问题描述 求助:iis下的C# webservice部分请求不知道哪里卡住了,cpu很高,处理时间很长 一个app的服务器端,使用的是C# webservice,部署在IIS下.service业务比较简单,基本就是操作另一个远程的数据库. 客户端反映调用service请求时,有时候会很久才返回(十几秒甚至几十秒,直到超时).查看iis的"工作进程",发现时不时会出现一些请求"经过的时间"很长,正常的请求只要毫秒级就能处理完,但是有些请求时间很不正常,如下图所示: 当

Mysql CPU占用高的问题解决方法小结

本文转自IT摆渡网欢迎转载,请标明出处. 更多mysq文章请阅读 mysql数据库问题解决 通过以前对mysql的操作经验,先将mysql的配置问题排除了,查看msyql是否运行正常,通过查看mysql data目录里面的*.err文件(将扩展名改为.txt)记事本查看即可.如果过大不建议用记事本了,容易死掉,可以用editplus等工具 简单的分为下面几个步骤来解决这个问题: 1.mysql运行正常,也有可能是同步设置问题导致 2.如果mysql运行正常,那就是php的一些sql语句导致问题发

MySQL · 专家投稿 · MySQL数据库SYS CPU高的可能性分析

问题背景 我们在管理繁忙的 MySQL 数据库时,可能都有碰到 SYS CPU 高的经历:系统突然 SYS CPU 高起来,甚至比 USER CPU 高很多,这时系统 QPS.TPS 急剧下降. SYS CPU高是什么造成的呢?主要有2种可能: 1. context switch 不高,但在内核态 spin,导致 SYS CPU 高 2. context switch 高,每秒超过 200K,有时超过1M,过多 context switch 导致 SYS CPU 高 下面我们对这两种情况逐一分析

MySQL数据库远程连接很慢的解决方案_Mysql

有次同事提出开发使用的MySQL数据库连接很慢,因为我们的MySQL开发数据库是单独一台机器部署的,所以认为可能是网络连接问题导致的. 在进行 ping和route后发现网络通信都是正常的,而且在MySQL机器上进行本地连接发现是很快的,所以网络问题基本上被排除了.以前也遇到过一次这样的问题,可后来就不知怎么突然好了,这次又遭遇这样的问题,所以想看看是不是MySQL的配置问题.在查询MySQL相关文档和网络搜索后,发现了一个配置似乎可以解决这样的问题,就是在MySQL的配置文件中增加如下配置参数

执行计划变化导致CPU负载高的问题分析

前几天碰到一个CPU负载较高的问题.从系统层面来看,情况不是很严重,但是从应用的角度来说,已经感觉到很慢了.因为前端的调用频率还是比较高.所以会把这个问题放大. 使用top -c查看了基本的服务器信息.可以看到负载大概在30%左右.IO wait不高. top - 19:30:48 up 179 days,  4:54,  3 users,  load average: 4.43, 4.28, 4.14 Tasks: 669 total,   6 running, 661 sleeping,  

电脑系统CPU很高怎么解决

  CPU高 1.病毒木马造成. 2.打开的网页过多,可造成短时间CPU占用率高. 3.看视频时由于硬盘读写慢.网速慢,也可引起CPU占用率高. 4.玩大型游戏时,也可引起CPU占用率高. 5.有时自启动项过多(其中包括与系统不兼容的程序),引起响应慢引起CPU占用率高. 6.使用多款杀毒软件和防火墙,并打开杀毒软件的监控功能,也可引起CPU占用率高. 7.硬件方面,可能是CPU风扇灰尘太多了导致的,建议,清理一下CPU风扇和散热片的灰尘,新加散热硅胶,如果是风扇有问题换个好的转高的风扇. 查杀

cpu占用高电脑很卡怎么办

  cpu占用高电脑很卡的解决方法 一些杀毒软件会对网页.进程.插件.邮件监控,可能会造成扫描一些程序的时候造成死循环 检查时候安装了多个杀毒软件(很多新手朋友的电脑会出现这个问题,安装一些软件的时候自动安装了多个杀毒软件),多个杀毒软件会造成扫描冲突,导致系统很卡,CPU使用率高,占用100%的情况. 排查最近安装硬件驱动的时候是否没有下载经过认证的驱动,未认证的驱动容易造成系统CPU占用高 系统中毒也会导致CPU使用率高,CPU占用100%的情况(svchost.exe这些进程会占用很高的c

mysql.ini cpu过高优化方法

mysql教程.ini cpu过高优化方法 tmp_table_size=200m  tmp_table_size越大,被转化为disk tmp table的概率越 小 php教程程序页面mysql及时关闭 设置mysql超时时间 low-priority-updates 设置查询与更新优先 及 low_priority_updates = no;设置读优先级 wait_timeout = 10;  大概10秒就可以了. table_cache=1024 物理内存越大,设置就越大.默认为2402

innobackupex来备份和恢复MySQL数据库的例子

背景介绍: 在一些技术群里面,看到仍然有一些运维在用mysqldump这样的命令来备份MySQL,于是感觉有必要介绍一下innobackupex. 现在,绝大多数使用MySQL的场景中,都用到了Master-Slave这样的架构.相对于mysqldump而言,使用innobackupex备份有以下好处: 1. 以数据文件为备份对象,文件级别备份,速度快,尤其适合需要对所有数据进行备份的场景: 2. 热备份,不会对现有的数据库访问造成任何影响: 3. 记录binlog以及replication相关