以意思来看就是一个读锁,一个写锁。
也就是说数据库会拥有多种版本的 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 许可协议。转载请注明出处!