mysql - 如果另一个查询编辑了这些结果,数据库如何维护这些结果

标签 mysql database postgresql relational-database mariadb

我只是想知道如果另一个查询编辑了您正在处理的那些行,大多数关系数据库如何处理维护您的结果集。例如,如果我对大约 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/

相关文章:

mysql - 将所有数据库 - 表,存储过程复制到一个文件中并保存在闪存盘上

database - Laravel 按 desc 排序

sql - PostgreSql:用于创建具有 1000 列的表的脚本

sql - 将值提取到 postgresql 中的逗号分隔字符串中

php - 从现在或以后选择记录(不是 future 的时间戳)

mysql - 使用 max sql 获取关联值

MySQL 慢查询 Lock_time = 年?

mysql - 用于存储统计数据的数据库表结构

java - 从数据库表中随机选择实体?

python - Postgresql:如何将多个列从一个表复制到另一个表?