【发布时间】:2014-09-01 14:15:39
【问题描述】:
我只是想知道如果另一个查询编辑了您正在处理的那些行,大多数关系数据库如何处理维护您的结果集。例如,如果我执行类似 100k 行的 select 并且当我仍在获取那些另一个查询并在尚未读取的行之一上执行 update 时,update 不会在获取这些行时可以看到,我想知道数据库引擎是如何处理的。如果您只有一种类型的数据库的详细信息,那我还是想听听。
【问题讨论】:
-
当心:MVCC 不仅只是一种 实现技术,它甚至不支持事务序列化,即实际上隔离事务,就好像每个事务都一次性完成一样。它允许某些类型的错误。它必须与其他技术混合使用才能完全隔离。
-
在我对关于序列化实现的 stackoverflow 答案的回答中添加了一个链接(在编辑处)。
标签: mysql database postgresql relational-database mariadb