mysql show processlist 发现大量的commit

[复制链接]
查看11 | 回复8 | 2011-4-2 17:01:06 | 显示全部楼层 |阅读模式
今天执行show processlist 发现大量的commit;查看锁信息,发现基本上都是
+----------------+----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| waiting_trx_id | waiting_thread | waiting_query
| blocking_trx_id | blocking_thread | blocking_query

+----------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+------------------------------------------------------------------------------------------------------------
| 1131726E | 501885 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',6)where `a`.`id` =NAME_CONST('in_user_id',6106041) and a.money >=NAME_CONST('pay_money',6)| 113159E3|
501939 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',6)where `a`.`id` =NAME_CONST('in_user_id',6106041) and a.money >=NAME_CONST('pay_money',6)
| 1131726E | 501885 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',6)where `a`.`id` =NAME_CONST('in_user_id',6106041) and a.money >=NAME_CONST('pay_money',6)| 1131432D|
500960 | commit

| 11317266 | 501631 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',15)where `a`.`id` =NAME_CONST('in_user_id',6232465) and a.money >= NAME_CONST('pay_money',15) | 11316F66|
501485 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',15)where `a`.`id` =NAME_CONST('in_user_id',6232465) and a.money >=NAME_CONST('pay_money',15)
| 11317266 | 501631 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',15)where `a`.`id` =NAME_CONST('in_user_id',6232465) and a.money >= NAME_CONST('pay_money',15) | 11316237|
501852 | commit

| 1131720C | 501785 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',6)where `a`.`id` =NAME_CONST('in_user_id',5214183) and a.money >=NAME_CONST('pay_money',6)| 1131624D|
501699 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',6)where `a`.`id` =NAME_CONST('in_user_id',5214183) and a.money >=NAME_CONST('pay_money',6)
| 1131720C | 501785 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',6)where `a`.`id` =NAME_CONST('in_user_id',5214183) and a.money >=NAME_CONST('pay_money',6)| 113146D2|
501710 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',6)where `a`.`id` =NAME_CONST('in_user_id',5214183) and a.money >=NAME_CONST('pay_money',6)
| 1131720C | 501785 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',6)where `a`.`id` =NAME_CONST('in_user_id',5214183) and a.money >=NAME_CONST('pay_money',6)| 11313088|
502124 | commit

| 113171EA | 501711 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',9)where `a`.`id` =NAME_CONST('in_user_id',5889087) and a.money >=NAME_CONST('pay_money',9)| 11316383|
501887 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',9)where `a`.`id` =NAME_CONST('in_user_id',5889087) and a.money >=NAME_CONST('pay_money',9)
| 113171EA | 501711 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',9)where `a`.`id` =NAME_CONST('in_user_id',5889087) and a.money >=NAME_CONST('pay_money',9)| 1131607B|
501045 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',9)where `a`.`id` =NAME_CONST('in_user_id',5889087) and a.money >=NAME_CONST('pay_money',9)
| 113171EA | 501711 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',9)where `a`.`id` =NAME_CONST('in_user_id',5889087) and a.money >=NAME_CONST('pay_money',9)| 11315087|
500378 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',9)where `a`.`id` =NAME_CONST('in_user_id',5889087) and a.money >=NAME_CONST('pay_money',9)
|
| 113171EA | 501711 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',9)where `a`.`id` =NAME_CONST('in_user_id',5889087) and a.money >=NAME_CONST('pay_money',9)| 11314AFC|
501849 | commit

|
| 113171DA | 501941 | update `a`set `a`.`money` = `a`.`money` -NAME_CONST('pay_money',9)where `a`.`id` =NAME_CONST('in_user_id',6389794) and a.money >=NAME_CONST('pay_money',9)| 11316230|
501547 | commit

好多都是和commit锁等待.
这不是由于DB commit比较频繁造成的?批量提交可以解决这个问题吗?

回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
同样的语句几个sql连接同时进行,这是在测试并发?
回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
是不是redo log因服务器的IO跟不上,导致撑爆了!
请检查下服务器的负载情况
回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
当时服务器load非常高,vmstat队列堆积也很严重,但是swap倒不是很严重
回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
devilkin0312 发表于 2012-3-5 11:57
同样的语句几个sql连接同时进行,这是在测试并发?

生产库出问题的时候,前端由多个应用服务器轮循。

回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
但是你要明白一点, 你看到的信息都是一瞬间的。
回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
下次记得,这种情况,把show engine innodb status\G 结果保留。
回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
并发有点大。
回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
本帖最后由 taoyi518 于 2012-4-14 20:15 编辑
优化sql和schema,把每张表加上自增id字段
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行