同一时间多个事务并发更新同一行数据,且更新后的数据是基于更新前的数据,造成了更新丢失的问题。我将事务的隔离级别设置为了最高的SERIALIZABLE,但发现并不能解决这个问题。在并发事务处理带来的问题中,“更新丢失”通常应该是完全避免的。但防止更新丢失,并不能单靠数据库事务控制器来解决,需要应用程序对要更新的数据加必要的锁来解决,因此,防止更新丢失应该是应用的责任。这段话是引用的别人文章中的话,不是很理解。我的想法有两种:1、在后台程序中将并发的事务强制变为同步串行执行,但总感觉哪里不妥2、控制数据库让多个事务对同一行数据进行操作时,不论读写,直接锁死该行数据,先来的事务获得读写的权限,事务完成,下一个事务再获取读写的权限进行操作,但问题如何实现啊?请各位帮忙解疑,如果你能详细说明下在node.js、mysql、sequelize中如何处理这样更好。
临摹微笑
aluckdog
慕沐林林
随时随地看视频慕课网APP
相关分类