MongoDB 如何复制影响多个文档的更新查询?
它会使用基于语句的方法来保存操作日志还是基于行的方法?
选择基于行或语句的复制的标准是什么?
它会使用基于语句的方法来保存操作日志还是基于行的方法
MongoDB 使用 oplog 逐行工作。因此,当您进行影响多行的更新时,它实际上会将每一行一一写入 oplog,这当然是一个空间占用者;如手册中所述:http: //docs.mongodb.org/manual/core/replication/#oplog
oplog 必须将多次更新转换为单独的操作,以保持幂等性。这可以使用大量的 oplog 空间,而不会相应增加磁盘利用率。
oplog 基本上是一个有上限的集合,它将首先复制最旧的。
据我所知,MongoDB 不像许多 SQL 技术人员那样做基于语句的复制。