从最开始的,python语法,到项目使用的框架,规范,到设计实现的方案,我也从一个萌新的位置,走到了新一个萌新的位置,mysql机制,mysql锁机制
问题描述
阐述这个问题之前,需要对mysql的事务,锁,有个了解,当执行select
和update
时会加上什么种类的锁
这是当时在知乎提问的记录
mysql死锁的问题
https://www.zhihu.com/question/268632336
解决方案
按照用户的id大小排序,后依次执行更新
当进行一个转账时,在redis中添加锁,重点关注互相转账的类型,限制互转的发生。因为
select _for_update
语句在使用时,有数量限制,多个迸发加锁会提示错误。还可以适当使用django的
F()
函数,例如这篇介绍(https://stackoverflow.com/questions/49169179/could-anyone-tell-me-about-the-lazy-loading-and-transaction-of-django),讲到了这个用法,filter
和F
结合,进行update
操作,能够有效限制数据,因为mysql的可复读,当一个事务修改后,commit
后,另一个事务中select
读取到的数据,还是之前的,但是在sql条件中判断时就会用新的值,例如mysql的四种隔离级别(https://www.cnblogs.com/huanongying/p/7021555.html)中讲到的例子。
文章转载自写程序的日子,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
2895次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
843次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
488次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
426次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
371次阅读
2025-04-15 14:48:05
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
275次阅读
2025-04-30 17:37:37
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
275次阅读
2025-04-15 15:27:53
SQL优化 - explain查看SQL执行计划(下)
金同学
262次阅读
2025-05-06 14:40:00
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
243次阅读
2025-04-30 12:17:54
MySQL 8.4 新特性深度解析:功能增强、废弃项与移除项全指南
JiekeXu
226次阅读
2025-04-18 20:21:32