0

MongoDB 如何复制影响多个文档的更新查询?

它会使用基于语句的方法来保存操作日志还是基于行的方法?

选择基于行或语句的复制的标准是什么?

4

1 回答 1

3

它会使用基于语句的方法来保存操作日志还是基于行的方法

MongoDB 使用 oplog 逐行工作。因此,当您进行影响多行的更新时,它实际上会将每一行一一写入 oplog,这当然是一个空间占用者;如手册中所述:http: //docs.mongodb.org/manual/core/replication/#oplog

oplog 必须将多次更新转换为单独的操作,以保持幂等性。这可以使用大量的 oplog 空间,而不会相应增加磁盘利用率。

oplog 基本上是一个有上限的集合,它将首先复制最旧的。

据我所知,MongoDB 不像许多 SQL 技术人员那样做基于语句的复制。

于 2013-03-06T17:29:35.443 回答