Mongodb:何时调用ensureIndex?

Joh*_*nny 41 indexing mongodb

我应该什么时候打电话给ensureIndex?在插入单个记录之前,插入单个记录之后,还是在调用find()之前?

问候,

约翰尼

Cod*_*ian 19

看来我的评论有点被误解了,所以我会澄清一下.只要在第一次调用find()之前调用它就会调用它并不重要.换句话说,创建索引并不重要,只要它在您希望使用它之前就已存在.

我见过的一个常见模式是ensureIndexfind()呼叫同时(并在同一个地方)编码.ensureIndex将检查索引是否存在,如果不存在则创建它.在调用find()之前调用ensureindex毫无疑问会有一些开销(尽管很小),所以最好不要这样做.

我确实调用ensureIndex代码来简化部署并避免单独管理数据库和代码库.易于部署的权衡平衡了后续调用ensureIndex(对我而言)的冗余.

  • 鉴于吞吐量mongo可以实现两倍的命令量,无论ensureIndex早期本身的效率如何,都将带来显着的带宽开销.我当然会避免这样做超过需要. (3认同)

UpT*_*eek 16

我建议在应用程序启动时调用ensureIndex一次.