微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MongoDB 有线老虎缓存与内存数据库有什么区别

如何解决MongoDB 有线老虎缓存与内存数据库有什么区别

据我所知,MonogoDB 缓存工作集在 RAM 中。

然后,如果我增加了与磁盘中所有数据一样多的wiredTigerCacheSizeGB,它的工作速度是否与内存数据库一样快?

如果不是,有什么区别?

解决方法

我无法回答你所有的问题。

缓存从磁盘读取数据并将其保存在 RAM 中。当您再次访问此类数据时,您会从 RAM 中读取它,而不是从磁盘中再次读取它——这会慢得多。

因此,如果您只需要读取一次数据,缓存是没有用的。一些应用程序预测您将来可能读取的数据并提前将其放入缓存中。

MongoDB 内存数据库仅将所有数据放入 RAM,除了一些日志数据外,它不会从磁盘读取或写入任何内容。当您停止内存中的 MongoDB 进程时,所有数据都会丢失。

wiredTiger 存储引擎是 MongoDB 使用的一种数据格式,用于将数据持久存储在磁盘上。

,

如果您将wiredTigerCacheSizeGB 设置得足够高以容纳您的所有数据,那么您的所有读取都将从缓存中得到满足。写入将更新缓存并写入存储。

如果您使用内存配置,那么您的所有读取都将从内存中得到满足。写入只会进入内存,不会存储在磁盘上。

因此,如果您的工作负载主要是读取,那么大型缓存的行为将类似于内存数据库。如果您的工作负载有大量写入,那么大缓存配置可能会较慢,因为它需要写入磁盘。

此外,内存数据库不会在发生崩溃时保存您的数据,因为它只保存内存中的数据。

,

enter image description here

In-Memory Storage EngineWiredTiger Storage Engine

(内存中)通过避免磁盘 I/O,内存中存储引擎允许更可预测的数据库操作延迟。

请记住,设置 wiredTigerCacheSizeGB 时限制为 10000 GB。您还应该禁用日志并将 storage.syncPeriodSecs 设置为 0 以提高 WiredTiger 的性能。但是,仍然 WiredTiger 必须至少创建 WiredTiger.wt 和 WiredTiger.turtle...

附注。 I think this link might answer your question

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。