MYSQL 运行一小段时间后,速度变得奇慢。而CPU基本空闲状态! 本帖最后由 afate 于 2012-08-01 11:06:50 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 query_cache_size=0没打开 查询缓存 show processlist看看哪些sql卡住了 我看了query_cache_size的介绍。如果出现很多相同查询的情况,查询缓存能提高速度。反之,如果每次查询的内容都不同时,则查询缓存会降低速度! 我们的查询,每次大多是不同的查询内容。所以应该不是这个问题。何况,出问题前,也没开缓存,但速度很可以。 SHOW PROCESSLIST 贴出来看一下。 显示一下进程列表看一下show processlist 慢查询日志打开没有打开 my.ini ,找到 [mysql] 在其下面添加long_query_time = 2 log-slow-queries = D:/mysql/logs/slow.log Id User Host db Command Time State Info5878 admin 10.217.150.116:2566 sqlgtsp Query 0 freeing items update gt_trades_13426 set tid='201176600716791',seller='惊富家居',shiptime='2012-08-05879 admin 10.217.150.116:2567 sqlgtsp Sleep 16 NULL5881 admin 10.217.150.116:2569 sqlgtsp Sleep 9 NULL5884 admin 10.217.150.116:2572 sqlgtsp Query 0 freeing items update gt_trades_5690 set tid='200060361432420',seller='精彩你懂的',shiptime='2012-07-28 22:386450 admin 10.217.150.116:4251 sqlgtsp Sleep 886 NULL6549 admin 10.217.150.116:2199 sqlgtsp Sleep 262 NULL6752 root 127.0.0.1:2964 sqlgtsp Sleep 156 NULL6766 admin 10.217.150.116:1967 sqlgtsp Query 0 freeing items update gt_trades_8199 set seller='aisleep',tid='165597311150904',shipping_id='EW20646768 admin 10.217.150.116:1989 sqlgtsp Query 0 freeing items update gt_trades_6343 set tid='149033062650623',seller='茵曼',paytime='2012-08-02 10:26:6769 admin 10.217.150.116:2005 sqlgtsp Query 0 freeing items update gt_trades_10260 set seller='良品淘',tid='201308400626794',receiver_state='河南省',r6771 admin 10.217.150.116:2010 sqlgtsp Query 0 freeing items update gt_trades_4260 set seller='易读',tid='165672350933709',last_scan_old='2012-08-02 10:42:59'6773 admin 10.217.150.116:2016 sqlgtsp Sleep 213 NULL6786 admin 10.217.150.116:4023 sqlgtsp Query 0 Sending data select * from gt_trades_1927 where cat='0' and status='WAIT_BUYER_PAY' and created>='2012-07-30 106808 root 127.0.0.1:2966 sqlgtsp Sleep 174 NULL6809 root 127.0.0.1:2967 sqlgtsp Query 0 freeing items update gt_sms_send set status=1,sendtime=sysdate() where id = 24130036816 root 127.0.0.1:2968 sqlgtsp Sleep 142 NULL6850 admin 10.217.150.116:3785 sqlgtsp Query 0 freeing items UPDATE gt_session_sys SET `data` ='KDT_USER_NICK|s:15:"千选";taobaouser|a:3:{s:4:"nick";s6851 root 127.0.0.1:2971 NULL Query 0 NULL show processlist 我是楼主,我发现了一个现象:show processlist的结果:如果进程超过15个(个别是20个),mysqld.exe只占用2%CPU, MYSQL查询就相当慢。如果进程比较少(特别是只有几个),mysqld.exe就会占用到50%CPU,MYSQL查询会相当快。这样看来,是不是 show processlist 里的查询进程太多了,导致了查询慢? 这也不对啊,最多才20多个,对MYSQL来说,应该不多吧? 而且这时CPU却空闲了,好像是mysql罢工了? 是不是我的设置有问题?哪位大虾能给解释下。拜谢了! mysql乱码 Mysql绿色版有多大? Mysql5.0触发器问题。。。请教 MYSQL中怎样更改AUTO_INCEMENT属性列的值(娃娃节结贴) >>load data local infile....4.0.15MYSQL 支持吗?<< 使用标准sql语句,查找一个数据库文件中有多少个表的命令是什么? 求助: 创建数据库报表出错! mysql 的error.log如下。怎么回事啊,谢谢啦 如何重定位Mysql的数据目录。(win2000系统), sqlserver语句转MYSQL 存储过程中有条件执行sql语句 C#操作mysql中临时表不自动删除
我看了query_cache_size的介绍。如果出现很多相同查询的情况,查询缓存能提高速度。反之,如果每次查询的内容都不同时,则查询缓存会降低速度! 我们的查询,每次大多是不同的查询内容。所以应该不是这个问题。
何况,出问题前,也没开缓存,但速度很可以。
show processlist
log-slow-queries = D:/mysql/logs/slow.log
Id User Host db Command Time State Info
5878 admin 10.217.150.116:2566 sqlgtsp Query 0 freeing items update gt_trades_13426 set tid='201176600716791',seller='惊富家居',shiptime='2012-08-0
5879 admin 10.217.150.116:2567 sqlgtsp Sleep 16 NULL
5881 admin 10.217.150.116:2569 sqlgtsp Sleep 9 NULL
5884 admin 10.217.150.116:2572 sqlgtsp Query 0 freeing items update gt_trades_5690 set tid='200060361432420',seller='精彩你懂的',shiptime='2012-07-28 22:38
6450 admin 10.217.150.116:4251 sqlgtsp Sleep 886 NULL
6549 admin 10.217.150.116:2199 sqlgtsp Sleep 262 NULL
6752 root 127.0.0.1:2964 sqlgtsp Sleep 156 NULL
6766 admin 10.217.150.116:1967 sqlgtsp Query 0 freeing items update gt_trades_8199 set seller='aisleep',tid='165597311150904',shipping_id='EW2064
6768 admin 10.217.150.116:1989 sqlgtsp Query 0 freeing items update gt_trades_6343 set tid='149033062650623',seller='茵曼',paytime='2012-08-02 10:26:
6769 admin 10.217.150.116:2005 sqlgtsp Query 0 freeing items update gt_trades_10260 set seller='良品淘',tid='201308400626794',receiver_state='河南省',r
6771 admin 10.217.150.116:2010 sqlgtsp Query 0 freeing items update gt_trades_4260 set seller='易读',tid='165672350933709',last_scan_old='2012-08-02 10:42:59'
6773 admin 10.217.150.116:2016 sqlgtsp Sleep 213 NULL
6786 admin 10.217.150.116:4023 sqlgtsp Query 0 Sending data select * from gt_trades_1927 where cat='0' and status='WAIT_BUYER_PAY' and created>='2012-07-30 10
6808 root 127.0.0.1:2966 sqlgtsp Sleep 174 NULL
6809 root 127.0.0.1:2967 sqlgtsp Query 0 freeing items update gt_sms_send set status=1,sendtime=sysdate() where id = 2413003
6816 root 127.0.0.1:2968 sqlgtsp Sleep 142 NULL
6850 admin 10.217.150.116:3785 sqlgtsp Query 0 freeing items UPDATE gt_session_sys SET `data` ='KDT_USER_NICK|s:15:"千选";taobaouser|a:3:{s:4:"nick";s
6851 root 127.0.0.1:2971 NULL Query 0 NULL show processlist
我发现了一个现象:
show processlist的结果:
如果进程超过15个(个别是20个),mysqld.exe只占用2%CPU, MYSQL查询就相当慢。
如果进程比较少(特别是只有几个),mysqld.exe就会占用到50%CPU,MYSQL查询会相当快。这样看来,是不是 show processlist 里的查询进程太多了,导致了查询慢?
这也不对啊,最多才20多个,对MYSQL来说,应该不多吧? 而且这时CPU却空闲了,好像是mysql罢工了?
是不是我的设置有问题?哪位大虾能给解释下。拜谢了!