并发场景
最近做了一些分布式事务的项目,对事务的隔离性有了更深的认识,后续写文章聊分布式事务。今天就复盘一下单机事务的隔离性是如何实现的?
隔离的本质就是控制并发,如果SQL语句就是串行执行的。那么数据库的四大特性中就不会有隔离性这个概念了,也就不会有脏读,不可重复读,幻读等各种问题了
对数据库的各种并发操作,只有如下四种,写写,读读,读写和写读
写-写
事务A更新一条记录的时候,事务B能同时更新同一条记录吗?
答案肯定是不能的,不然就会造成脏写问题,那如何避免脏写呢?答案就是加锁
读-读
MySQL读操作默认情况下不会加锁,所以可以并行的读
读-写 和 写-读
基于各种场景对并发操作容忍程度不同,MySQL就搞了个隔离性的概念。你自