21. mysql_field_len: 返回指定字段的长度。22. mysql_field_name: 取得结果中指定字段的字段名。23. mysql_field_seek: 将结果集中的指针设定为制定的字段偏移量。24. mysql_field_table: 取得指定字段所在的表名。25. mysql_field_type: 取得结果集中指定字段的类型。26. mysql_free_result: ...
Mysql数据库导致CPU很高的问题解决
服务器配置包括Linux AS4、PHP5、Mysql5、Apache 2。在使用过程中,经常发现CPU使用率高达100%,起初误以为是DDoS攻击,添加了防火墙,但问题并未解决。接着检查Linux系统,同样未找到问题所在。在查阅网络信息时,发现类似问题,虽无具体解决方案,但提醒应关注程序问题。
深入检查PHP代码,发现一些错误的连接方式,即只使用了常连接而未进行关闭,导致CPU资源消耗。将所有页面的数据库连接进行了关闭操作后,CPU使用率稳定在1%至10%之间,问题得以解决。提醒开发者在编写PHP程序时,避免因懒惰导致的低级错误,确保代码质量。
总结,一个看似系统问题的高CPU使用率,实际上是由于错误的数据库连接方式造成的。通过优化代码,问题得以解决,提醒开发者在处理数据库操作时,应正确关闭连接,以减少资源消耗。
附:Mysql常用函数列表
1. mysql_affected_rows: 获取前一次MySQL操作影响的记录行数。
2. mysql_change_user: 改变活动连接中的用户。
3. mysql_client_encoding: 返回字符集名称。
4. mysql_close: 关闭MySQL连接。
5. mysql_connect: 打开一个到MySQL服务器的连接。
6. mysql_create_db: 新建一个MySQL数据库。
7. mysql_data_seek: 移动内部结果的指针。
8. mysql_db_name: 取得结果数据。
9. mysql_db_query: 发送一条MySQL查询。
10. mysql_drop_db: 删除MySQL数据库。
11. mysql_errno: 返回上一个MySQL操作中的错误信息的数字编码。
12. mysql_error: 返回上一个MySQL操作产生的文本错误信息。
13. mysql_escape_string: 转义字符串用于mysql_query。
14. mysql_fetch_array: 从结果集中取得一行作为关联数组或数字数组。
15. mysql_fetch_assoc: 从结果集中取得一行作为关联数组。
16. mysql_fetch_field: 从结果集中取得列信息并作为对象返回。
17. mysql_fetch_lengths: 取得结果集中每个输出的长度。
18. mysql_fetch_object: 从结果集中取得一行作为对象。
19. mysql_fetch_row: 从结果集中取得一行作为枚举数组。
20. mysql_field_flags: 从结果中取得和指定字段关联的标志。
21. mysql_field_len: 返回指定字段的长度。
22. mysql_field_name: 取得结果中指定字段的字段名。
23. mysql_field_seek: 将结果集中的指针设定为制定的字段偏移量。
24. mysql_field_table: 取得指定字段所在的表名。
25. mysql_field_type: 取得结果集中指定字段的类型。
26. mysql_free_result: 释放结果内存。
27. mysql_get_client_info: 取得MySQL客户端信息。
28. mysql_get_host_info: 取得MySQL主机信息。
29. mysql_get_proto_info: 取得MySQL协议信息。
30. mysql_get_server_info: 取得MySQL服务器信息。
31. mysql_info: 取得最近一条查询的信息。
32. mysql_insert_id: 取得上一步INSERT操作产生的ID。
33. mysql_list_dbs: 列出MySQL服务器中所有的数据库。
34. mysql_list_fields: 列出MySQL结果中的字段。
35. mysql_list_processes: 列出MySQL进程。
36. mysql_list_tables: 列出MySQL数据库中的表。
37. mysql_num_fields: 取得结果集中字段的数目。
38. mysql_num_rows: 取得结果集中行的数目。
39. mysql_pconnect: 打开一个到MySQL服务器的持久连接。
40. mysql_ping: Ping服务器连接,如果没有连接则重新连接。
41. mysql_query: 发送一条MySQL查询。
42. mysql_real_escape_string: 转义SQL语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集。
43. mysql_result: 取得结果数据。
44. mysql_select_db: 选择MySQL数据库。
45. mysql_stat: 取得当前系统状态。
46. mysql_tablename: 取得表名。
47. mysql_thread_id: 返回当前线程的ID。
48. mysql_unbuffered_query: 向MySQL发送一条SQL查询,并不获取和缓存结果的行。2024-09-06