mongodb - mongodb“_id”索引是否始终保存在缓存中?
问题描述
我有一个 mongodb 数据库,它有多个集合。还有一个额外的集合,它更像是系统中发生的所有事件的日志。我想知道,当我有一个很少使用的大型集合时,该集合的“_id”索引是否也在该集合上没有发生任何操作时放入 RAM 中?或者它只是在磁盘上等待,直到执行读取操作。我主要担心的是这个集合的大小是否会影响其他查询的性能(由于集合的大小比可用 RAM 大几倍)。
解决方案
它们将在LRU 的基础上被换掉。
索引不必在所有情况下都完全适合 RAM。如果索引字段的值随着每次插入而增加,并且大多数查询选择最近添加的文档;那么 MongoDB 只需将索引中包含最新或“最右边”值的部分保留在 RAM 中。
为确保此索引适合 RAM,您不仅必须拥有超过那么多可用的 RAM,而且还必须为工作集的其余部分提供可用的 RAM 。索引和工作集必须能够同时放入内存。
https://docs.mongodb.com/manual/tutorial/ensure-indexes-fit-ram/#indexing-right-handed
推荐阅读
- sql - 排名或运行计数新值?
- django - 无法向 django 中的其他用户电子邮件帐户发送电子邮件
- java - 从 spring-data-jdbc 的“Entities”生成脚本 sql
- r - R:导出数据框的嵌套列表
- python - 在 Python 中处理夹具数据的正确方法
- linux - 如何在 shell 中处理我的登录脚本中的错误密码?
- bash - gif壁纸的CPU优化
- javascript - 创建新组件并从 styled-component 继承样式
- pdf - 我可以从 Orbeon 中生成的 PDF 中删除表单检查器吗?
- jenkins - 标记的空手道测试运行没有在詹金斯上完成