事务的ACID
原子性:要么全部都成功,要么全部都失败
一致性: 保证能看到系统内的所有更改
隔离性:以性能为理由,对一致性的破坏
序列化读写:排它锁(单位时间内只能有一个人进来)
读写锁:
可重复读:读锁不能被写锁升级,只能做到读读可以并行。
读已提交:读锁可以被写锁升级,读读并行、读写并行(写读不能并行)
读写并行的时候可能出现读写一个事务里面两次读取数据是不一致的
读未提交:只加写锁,读不加锁,读读并行、读写并行、写读并行
快照隔离级别 : mvcc(copy on write)无锁编程
mvcc所做得事情就是读请求全部放到1版本总执行,不会再2版本中执行.(1版本是历史版本,2版本是当前事务版本)
针对读多写少场景优化
并行度能达到或超过读未提交,而隔离级别很高
快照和读未提交级别对比:快照读的情况下能保证在读到一致性的同时实现读未提交
原文:https://www.cnblogs.com/yifan72/p/11173580.html