MySql行级锁的一些实用小思考

面对高并发下余额字段频繁更新导致的性能问题,一种解决方案是将余额分散到多行,通过随机访问不同行来提高并发能力。此外,也有专家建议修改MySQL源码以实现同一行访问排队,减少死锁检测,但这并非普遍适用。本文探讨了应对热点数据行的优化策略。
摘要由CSDN通过智能技术生成

mysql的引擎是InnoDB

你有没有遇到过这种场景, 你有一个收款表, 表里边有一个余额字段 , 然后 这个余额字段 频繁的update,我们假设很多人往你余额里边充钱, 当然也有很多人在你这里取钱,也就是说这行余额不断的加减运算,不断的更新。那么 高并发下 会 锁表 是不是会非常慢(你这一行属于是典型的热点行数据) 那么我们怎么提高 并发能力呢。

先说一个比较好的办法,就是 你把这个余额 分成好几行,然后 让每个往里存钱的 或者取钱的事务 随机访问 余额行就可以,这样就能提高并发能力, 比较好的做法就是 id ,每次更新余额字段的时候 通过id随机访问不同的行,这样就OK。

当然办法不止一个,我看到 也有人说你公司有mysql专家 能改mysql 源码 可以在 访问同一行的时候 排队 从而减少死锁检测。不过这种办法并不每个公司都适合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值