确保索引容纳在 RAM
在此页面上
为实现最快处理速度,请确保索引完全适合 RAM,以便系统能避免从磁盘读取索引。
要检查索引的大小,请使用 db.collection.totalIndexSize()
辅助程序,该程序以字节为单位返回数据:
> db.collection.totalIndexSize() 4617080000
上述示例显示了一个大小约为 4.3 GB 的索引。为确保该索引适合 RAM,您不仅须有超过该数量的可用 RAM 空间,还须为工作集的其余部分提供可用 RAM 空间。此外,还需确保:
如果拥有并使用多个集合,则必须考虑所有集合上所有索引的大小。索引和工作集必须能同时容纳在内存中。
在有限的情况下,索引不需要容纳在内存中。请参阅仅在 RAM 中保存近期值的索引。
提示
另请参阅:
collStats
命令db.collection.stats()
Shell 方法
仅保存 RAM 中近期值的索引
索引不必在所有情况下都完全容纳在 RAM 中。如果索引字段的值随着每次插入而增加,并且多数查询选择最近添加的文档;那么 MongoDB 只需要在 RAM 中保留索引中占用最新或“最右”值的部分。这样可以高效率使用索引进行读写操作,并最大限度地减少支持索引所需的 RAM 量。