我只是想知道如果另一个查询编辑了您正在处理的那些行,大多数关系数据库如何处理维护您的结果集。例如,如果我对大约 10 万行执行 select
操作,而当我仍在获取这些数据时,另一个查询进入并对其中 1 行执行 update
操作尚未阅读 update
不会在获取这些行时看到,我想知道数据库引擎如何处理它。如果您只有一种类型的数据库的细节,那很好,无论如何我都想听听。
最佳答案
请查阅多版本并发控制。不同的数据库有不同的管理方法。 MySQL,InnoDB,可以试试http://dev.mysql.com/doc/refman/5.0/en/innodb-multi-versioning.html . PostgreSQL-https://wiki.postgresql.org/wiki/MVCC .这里有一个很棒的演示 - http://momjian.us/main/writings/pgsql/mvcc.pdf .在这个线程的 stackoverflow 中对此进行了解释 Database: What is Multiversion Concurrency Control (MVCC) and who supports it?
关于mysql - 如果另一个查询编辑了这些结果,数据库如何维护这些结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24689516/