Change Streams无法使用索引,且在 oplog 集合上创建索引不支持,因此要避免打开大量专门的 Change Streams,否则会影响服务器性能。Change Streams可以通过全局逻辑时钟提供整个分片的变更排序,并且MongoDB确保变更顺序得以保留和安全地解释。对于分散的分片或大多数操作发生在集群中分片子集的工作负载,使用 Change Streams可能会给响应时间带来负面影响。此外,mongos如果分片集合有一或多个分片且分片的集合几乎没有活动或处于“冷”状态,则也会给响应时间带来影响。Change Streams响应文档必须遵循 16MB 的 BSON 文档大小限制。根据打开 Change Streams 集合中的文档大小,若生成的通知文档超出 16MB,则无法发送。对于副本集,如果没有足够的数据承载成员导致大部分操作无法完成,则 Change Streams 可能会一直处于空闲状态。Change Streams可以通过全局逻辑时钟提供整个分片的变更排序,并且MongoDB确保变更顺序得以保留和安全地解释。文档数据库比 RDBMS 快,因为它能够在存储和数据建模层上进行一些表格是“碎片”内容嵌入其他表中的优化。文档模型数据库与关系数据库之间的真正不同之处体现在于,它们能够在存储和数据建模层上进行一些表格是“碎片”内容嵌入其他表中的优化。此外,它们还能够非常轻松地从 Java、C# 和其他现代语言中保存对象。文档数据库可以用于 OLTP 工作负载,既可在其中读写数据,也可将其作为信息源。对于给定读取/写入/更新工作负载,不论是在单位成本执行的事务数量,还是在每开发小时所开发的功能数量,MongoDB 的效率远远超过 RDBMS。文档数据库可以减少开发人员投入的时间和资源,并且大幅降低将数据库投入生产的成本。此外,它们能够提供更高的性能和可伸缩性。文档模型的高效率也被独立测试证实,例如 Temenos 的 74,000 TPS 的实现,每核心吞吐量比三年前类似测试的吞吐量高 4 倍。