开发者社区> 问答> 正文

大并发下的mysql事务问题

现有如下场景:用户A和大量A 的粉丝,这时候A的粉丝不断的给A 送道具,这个道具是用户花钱买的,送给用户A之后,会给用户A 的帐号增加相应的钱,同时会给用户A 增加一些附件属性的值,比如用户A 的 经验值,血条长度啊,同时还会给该粉丝增加的经验值,那么这里涉及到的表有用户A 的钱的表,粉丝的钱的表,经验的表,那么我在处理这个时候 给整个过程加了事务处理,但是现在遇到的问题是:一旦有大量的用户同时给A送道具,那么就会出现数据库死锁的问题,请问这个该怎么处理?

展开
收起
蛮大人123 2016-02-07 13:27:11 2243 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    检查一下sql语句中update .... where [conditon],其中condition是否是主键?如果不是主键,在update时数据库会锁住整张表,多个线程同时操作时极容易出现死锁。
    解决办法是,update 后的condition务必使用主键操作,此时数据库仅仅对当前操作记录使用行锁,不会死锁。

    2019-07-17 18:39:01
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像