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

2016-02-19 19:53 51 1 收藏

今天图老师小编要跟大家分享关于Mysql数据库导致CPU很高的问题解决,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

【 tulaoshi.com - 编程语言 】

  服务器环境 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 -- 从结果集中取得一行作为关联数组

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

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

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

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

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

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

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

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

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

  mysql_free_result -- 释放结果内存

  mysql_get_client_info -- 取得 MySQL 客户端信息

  mysql_get_host_info -- 取得 MySQL 主机信息

  mysql_get_proto_info -- 取得 MySQL 协议信息

  mysql_get_server_info -- 取得 MySQL 服务器信息

  mysql_info -- 取得最近一条查询的信息

  mysql_insert_id -- 取得上一步 INSERT 操作产生的 ID

  mysql_list_dbs -- 列出 MySQL 服务器中所有的数据库

  mysql_list_fields -- 列出 MySQL 结果中的字段

  mysql_list_processes -- 列出 MySQL 进程

  mysql_list_tables -- 列出 MySQL 数据库中的表

  mysql_num_fields -- 取得结果集中字段的数目

  mysql_num_rows -- 取得结果集中行的数目

  mysql_pconnect -- 打开一个到 MySQL 服务器的持久连接

  mysql_ping -- Ping 一个服务器连接,如果没有连接则重新连接

  mysql_query -- 发送一条 MySQL 查询

  mysql_real_escape_string -- 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集

  mysql_result -- 取得结果数据

  mysql_select_db -- 选择 MySQL 数据库

  mysql_stat -- 取得当前系统状态

  mysql_tablename -- 取得表名

  mysql_thread_id -- 返回当前线程的 ID

  mysql_unbuffered_query -- 向 MySQL 发送一条 SQL 查询,并不获取和缓存结果的行

来源:http://www.tulaoshi.com/n/20160219/1622105.html

延伸阅读
标签: Web开发
内码问题.用这段代码的吧,我已经改得很精简了. 使用XMLHTTP抓取地址并进次内容处理 以下为引用的内容: Function GetBody(Url) Dim objXML On Error Resume Next Set objXML = CreateObject("Microsoft.XMLHTTP") With objXML .Open "Get", Url, False, "", "" .Send GetBody = .ResponseBody End With GetBody=BytesToBstr(GetBody,"GB...
标签: MySQL mysql数据库
存储引擎是什么? MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存...
我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来 很多mysql数据库工具(除了phpmyadmin,我偶尔用,功能强速度慢)都不支持创建时指定数据库编码,当然可以改my.ini来解决这个问题,但是需要重新启动mysql,不过用下面的语句会更有效 GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; UTF8: C...
标签: MySQL mysql数据库
MySQL允许影响语句的调度特性,这样会使来自几个客户机的查询更好地协作,从而单个客户机不会被锁定太长的时间。更改调度特性还能保证特定的查询处理得更快。我们先来看一下MySQL的缺省调度策略,然后来看看为改变这个策略可使用什么样的选项。出于讨论的目的,假设执行检索( SELECT)的客户机程序为读取程序。执行修改表操作( DELETE,INSER...
首先准备四张表A、B、C、D, --------------------------------     A      | B | C   | D     a   b   |   a   c   |   a   d   |   d   e  &...

经验教程

135

收藏

14
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部