mysqlreport显示Com_中change_db占用比例高的问题的解决方法

 更新时间:2009年05月08日 22:54:50   作者:  
最近公司的mysql服务器经常出现阻塞状态。动不动就重启,给用户访问带来了相当的不便。
首先说明一点,每天的访问量并不大每天才2W的访问量,按道理说,访问量再增加一倍这样的服务器也应该足以承受。可是我们的服务器为什么总是这样频频重启呢?经过mysqlreport显示mysql运行的状态如下:
MySQL 5.1.28-rc-log   uptime 0 0:4:48    Thu Apr 30 14:04:58 2009

__ Key _________________________________________________________________
Buffer used 7.74M of 384.00M %Used: 2.02
Current 52.89M %Usage: 13.77
Write hit 0.00%
Read hit 91.97%

__ Questions ___________________________________________________________
Total 14.46k 50.2/s
DMS 9.24k 32.1/s %Total: 63.90
QC Hits 3.66k 12.7/s 25.33
Com_ 1.04k 3.6/s 7.19
COM_QUIT 517 1.8/s 3.58
-Unknown 1 0.0/s 0.01
Slow 1 s 4 0.0/s 0.03 %DMS: 0.04 Log: OFF
DMS 9.24k 32.1/s 63.90
SELECT 9.21k 32.0/s 63.75 99.75
UPDATE 23 0.1/s 0.16 0.25
REPLACE 0 0/s 0.00 0.00
DELETE 0 0/s 0.00 0.00
INSERT 0 0/s 0.00 0.00
Com_ 1.04k 50/s 44.4
set_option 523 1.8/s 3.62
change_db 510 50/s 44.4
show_proces 5 0.0/s 0.03

__ SELECT and Sort _____________________________________________________
Scan 49 0.2/s %SELECT: 0.53
Range 16 0.1/s 0.17
Full join 2 0.0/s 0.02
Range check 0 0/s 0.00
Full rng join 0 0/s 0.00
Sort scan 55 0.2/s
Sort range 475 1.6/s
Sort mrg pass 0 0/s

__ Query Cache _________________________________________________________
Memory usage 12.02M of 150.00M %Used: 8.01
Block Fragmnt 0.01%
Hits 3.66k 12.7/s
Inserts 9.14k 31.8/s
Insrt:Prune 9.14k:1 31.8/s
Hit:Insert 0.40:1

__ Table Locks _________________________________________________________
Waited 0 0/s %Total: 0.00
Immediate 10.49k 36.4/s

__ Tables ______________________________________________________________
Open 58 of 512 %Cache: 11.33
Opened 64 0.2/s

__ Connections _________________________________________________________
Max used 4 of 2000 %Max: 0.20
Total 519 1.8/s

__ Created Temp ________________________________________________________
Disk table 1 0.0/s
Table 184 0.6/s Size: 256.0M
File 5 0.0/s

__ Threads _____________________________________________________________
Running 2 of 2
Cached 2 of 150 %Hit: 99.23
Created 4 0.0/s
Slow 0 0/s

__ Aborted _____________________________________________________________
Clients 0 0/s
Connects 0 0/s

__ Bytes _______________________________________________________________
Sent 20.36M 70.7k/s
Received 1.37M 4.7k/s

__ InnoDB Buffer Pool __________________________________________________
Usage 304.00k of 8.00M %Used: 3.71
Read hit 84.42%
Pages
Free 493 %Total: 96.29
Data 19 3.71 %Drty: 0.00
Misc 0 0.00
Latched 0.00
Reads 77 0.3/s
From file 12 0.0/s 15.58
Ahead Rnd 1 0.0/s
Ahead Sql 0 0/s
Writes 0 0/s
Flushes 0 0/s
Wait Free 0 0/s

__ InnoDB Lock _________________________________________________________
Waits 0 0/s
Current 0
Time acquiring
Total 0 ms
Average 0 ms
Max 0 ms

__ InnoDB Data, Pages, Rows ____________________________________________
Data
Reads 25 0.1/s
Writes 3 0.0/s
fsync 3 0.0/s
Pending
Reads 0
Writes 0
fsync 0

Pages
Created 0 0/s
Read 19 0.1/s
Written 0 0/s

Rows
Deleted 0 0/s
Inserted 0 0/s
Read 0 0/s
Updated 0 0/s
大家可以看到在Com_中占的比例是相当大的,而一般情况下,这个值应该是3.0%左右。如果这个值过高的话,就说明,你的mysql处理请求中
做了一些无谓的工作,占用了大量的系统资源。其中我们看到尤为change_db的占用率比较高。这个值高了,说明我们执行的user database;命令相当多。
检查程序,原来我们在执行查询语句的时候应用了mysql_query_db("database","sql");这个语句在每次执行的时候都会自动调用use database;
所以我们应该将mysql_db_query 更改成mysql_query();再观察mysql的运行状态,ok。一切正常了。

相关文章

  • 安装mysql出错”A Windows service with the name MySQL already exists.“如何解决

    安装mysql出错”A Windows service with the name MySQL already exis

    这篇文章主要介绍了安装mysql出错”A Windows service with the name MySQL already exists.“如何解决的相关资料,在日常项目中此问题比较多见,特此把解决办法分享给大家,供大家参考
    2016-05-05
  • MySQL用户账户管理和权限管理深入讲解

    MySQL用户账户管理和权限管理深入讲解

    这篇文章主要给大家介绍了关于MySQL用户账户管理和权限管理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • MySQL修改字段类型之modify详解

    MySQL修改字段类型之modify详解

    这篇文章主要介绍了MySQL修改字段类型之modify详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Mysql元数据如何生成Hive建表语句注释脚本详解

    Mysql元数据如何生成Hive建表语句注释脚本详解

    这篇文章主要给大家介绍了关于Mysql元数据如何生成Hive建表语句注释脚本的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • mysql 显示SQL语句执行时间的代码

    mysql 显示SQL语句执行时间的代码

    查看 MySQL 語法 詳細執行時間 與 CPU/記憶體使用量: MySQL Query Profiler
    2009-08-08
  • MySQL修改配置 区分大小写

    MySQL修改配置 区分大小写

    修改MySql Server安装目录下的 my.ini 文件,在mysqld节下加入下面一行 set-variable=lower_case_table_names=0 (0:大小写敏感;1:大小写不敏感)最后重启一下MySql服务即可。
    2010-12-12
  • M1芯片安装mysql8.0数据库的实现步骤(图文)

    M1芯片安装mysql8.0数据库的实现步骤(图文)

    这篇文章主要介绍了M1芯片安装mysql8.0数据库的实现实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • MySQL20个高性能架构设计原则(值得收藏)

    MySQL20个高性能架构设计原则(值得收藏)

    这篇文章主要介绍了MySQL20个高性能架构设计原则,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2020-08-08
  • MySQL数据库之事务简析

    MySQL数据库之事务简析

    这篇文章主要介绍了MySQL数据库之事务简析,MySQL数据库中的事务是一组数据库操作,它们被视为一个整体,要么全部执行成功,要么全部失败回滚,MySQL支持四种事务隔离级别,其中默认的事务隔离级别是REPEATABLE READ,需要的朋友可以参考下
    2023-09-09
  • MySQL中BETWEEN子句的用法详解

    MySQL中BETWEEN子句的用法详解

    这篇文章主要介绍了MySQL中BETWEEN子句的用法详解,是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05

最新评论