或索引大于RAM?
答案 0 :(得分:10)
是的,它可以工作。它将执行的级别更多的是“它取决于”
关键是要确保工作集能够适合RAM。因此,如果你有16GB的RAM和20GB的数据库(包括索引),如果你只需要访问所有数据的一半,因为另一半是旧的/从未实际查询过那么你只会有一半你的数据库需要在RAM(10GB)中。
工作集在这里是关键。例如,如果您有一个日志应用程序输出到MongoDB,那么您的工作集可能是过去3个月的数据量(和索引)以及您之前无法访问的所有数据。
当你的工作集超过RAM的数量时,它将继续工作,但性能明显下降,因为事情将不断地转向磁盘,而性能要低得多。如果您处于机器上超出RAM约束的情况,那么这就是分片发挥作用的地方 - 因此您可以通过多台机器平衡数据,从而增加可以保存在RAM中的数据量。
答案 1 :(得分:1)