开发者

MongoDB takes long for indexing

I have the following setup:

  • Mac Pro with 2 GB of RAM (yes, not that much)
  • MongoDB 1.1.3 64-bit
  • 8 million entries in a single collection
  • index for one field (integer) wanted

Calling .ensureIndex(...) takes more than an hour, actually I killed the pr开发者_如何学Cocess after that. My impression is, that it takes far too long. Also, I terminated the process but the index can be seen with .getIndexes() afterwards.

Anybody knows what is going wrong here?


Adding an index on an existing data set is expected to take a while, as the entire BTree needs to be constructed. If you think this is taking an unreasonable amount of time, or you've seen a regression in performance the best bet is to ask about it on the list.


I would just like to point out the command:

db.currentOp()

which prints the current operations running on the server, and also shows the indexing process.

The foreground indexing is done in 3 steps, and the background one in 2 steps (if I remember correctly), but the background one is alot slower. The foreground one on the other hand locks the collection while indexing it (ie not very useful on a running application server).

As said before, google BTree if you are interested in how they work.

Anybody knows what is going wrong here?

Are you running via ssh or connecting remotely in some way? Sound a bit like a broken pipe issue. Did you create the index with {background : true} or not?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜