mysqlreport显示Com_中change_db占用比例高的问题的解决方法
mysqlreport显示Com_中change_db占用比例高的问题的解决方法
发布时间:2016-12-29 来源:查字典编辑
摘要:首先说明一点,每天的访问量并不大每天才2W的访问量,按道理说,访问量再增加一倍这样的服务器也应该足以承受。可是我们的服务器为什么总是这样频频...

首先说明一点,每天的访问量并不大每天才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数据库学习
热门mysql数据库学习
编程开发子分类