为Web应用程序在MongoDB集合上创建索引的推荐方式/位置

时间:2011-10-16 09:07:14

标签: mongodb pymongo

我正在将MongoDB用于我们的Web应用程序。假设MongoDB上有一个'find()'用于传入请求。在MongoDB集合上添加索引的推荐方法是什么?

我能想到的几个选项: -

1)初始化应用程序时集合上的'ensureIndex'。 [但是,在第一次申请初始化时,我将如何'确保索引'?因为没有任何数据]

每次“查找”操作之前

2'insitIndex'(在网络请求上)?但即使'ensureIndex'在创建索引时不会创建索引,这不是开销吗?

还有其他选择吗?

提前致谢。

3 个答案:

答案 0 :(得分:4)

我会在初始化应用程序时使用它。如果在调用ensureIndex时集合不存在,那么将在那时创建索引(和集合)。

我假设您事先知道您将在数据上运行什么类型的查询,以及您将在索引中添加哪种数据。

答案 1 :(得分:0)

启动应用程序时,请立即运行ensureIndex。如果在空集合上调用ensureIndex并不重要(因为它会在之后将数据添加到索引中)。

此外,它取决于您的查询所基于的属性。例如,如果您基于登录用户进行查询,则应在用户ID上添加索引。

答案 2 :(得分:0)

您可以为要从服务器命令行运行的集合创建初始化脚本(Mongo文档讨论如何编写Mongo脚本并从CLI运行它们)。然后每当mongod开始运行它?该脚本只能在集合对象上调用ensureIndex()。