以意思来看就是一个读锁,一个写锁。

也就是说数据库会拥有多种版本的 Record,而每个版本都有时间纪录,让 RDBMS 知道哪份版本才是最新的,而 Record 太旧的版本会被 RDBMS 自动删除。

因为有版本的机制,因此在 MVCC 中只有 X LOCK,也就是写锁,没有 S LOCK,也就是读锁。

Note:虽然之前文章介绍了 ACID 与四个 Isolation Level,但因为其底层时作机制不同,会造成 Isolation 的行为有所不同,也造成不一样的风险。

在只考虑一个 TX 下,MVCC 使用比较多 IO 与 CPU,所以会比较花时间,因为:

在高流量环境,MVCC 比较高效能,因为:

因为 MVCC 的 Read 永远不会被 Block,同一时间数据库能处理更多 TX。

最后,如果你觉得这篇文章对你有帮助,可以透过下方的连结给我点支持来继续写作的动力,谢谢。

版权声明: 本网志所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!