确保索引适合 RAM

在本页面

为了进行最快的处理,请确保索引完全适合 RAM,以便系统避免从磁盘读取索引。

要检查索引的大小,请使用db.collection.totalIndexSize()帮助程序,该帮助程序以字节为单位返回数据:

> db.collection.totalIndexSize()
4294976499

上面的示例显示了几乎 4.3 GB 的索引大小。为确保此索引适合 RAM,您不仅必须拥有多于该数量的可用 RAM,而且还必须为其余working set提供 RAM。还请记住:

如果拥有并使用多个集合,则必须考虑所有集合上所有索引的大小。索引和工作集必须能够同时容纳在内存中。

在某些有限的情况下,索引不需要容纳在内存中。参见仅在 RAM 中保存最近值的索引

仅在 RAM 中保存最近值的索引

索引不必在所有情况下都完全适合 RAM。如果索引字段的值随每次插入而增加,并且大多数查询都选择最近添加的文档;那么 MongoDB 只需要将索引中保留最新或“最右边”值的部分保留在 RAM 中。这样可以将索引有效地用于读取和写入操作,并最大程度地减少支持索引所需的 RAM 数量。