在许多情况下,我不知道应该在MySQL中使用什么样的隔离来避免使用损坏的数据。
例如,让我们假设一个申请预订一个剧院。用户选择一个座位,在事务中,检查所选的座位是否是空闲的,如果是的话,则在第二步中保存预订。
可能发生的情况是,在确认座位是免费的同时,在保存预订之前,另一个用户会先预订它。
对于这样的情况和使用MySQL,我应该使用什么隔离级别?
发布于 2022-01-31 13:17:59
对这种操作的应用程序级支持的需求是正确的。特别是在web应用程序中,每个页面视图或AJAX请求都是一个单独的操作,可以使用自己的连接,因此您不能为多个页面视图以未提交的状态保存事务。
尽管如此,如果您的事务执行SELECT ... FOR UPDATE ; UPDATE ; COMMIT序列,默认的SELECT ... FOR UPDATE ; UPDATE ; COMMIT隔离级别应该会很好地为您服务。
https://stackoverflow.com/questions/70925746
复制相似问题