简短回答:快照隔离(Snapshot Isolation,SI)是一种“隔离级别”,属于事务隔离性(Isolation)的一部分,但它并不等于完整的“可串行化隔离性”。
更详细地说:
数据库事务的 隔离性(Isolation) 指:多个事务并发执行时,彼此之间不能互相干扰,看起来就像串行执行一样。
在 SQL 标准里,常见隔离级别有:
很多数据库(如 PostgreSQL、Oracle、SQL Server、MySQL InnoDB 在某些配置下)实现了 快照隔离:
所以:快照隔离是“隔离性”的一种具体实现方式 / 一种隔离级别。
快照隔离不能防止所有并发异常,最典型的是:
因此:
快照隔离属于隔离性,但只是隔离性的一种“较弱”的实现,不是最严格的隔离性。
如果你愿意,我也可以举一个“写偏斜”的具体例子来说明为什么快照隔离不够强。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。