1
我正在使用MongoDB 2.0.3(通過Mongoid)和一個紅寶石(1.9.3)應用程序。Mongodb查詢不使用索引
我有一個看起來一個複合索引,如:
index [
[:attr1, Mongo::ASCENDING],
[:attr2, Mongo::ASCENDING],
[:attr3, Mongo::ASCENDING],
[:attr4, Mongo::ASCENDING]
]
而且,看起來像一個查詢:
Model.where(:attr3.ne => true, :attr4.ne => true).
extras(:hint => { :attr1 => Mongo::ASCENDING,
:attr2 => Mongo::ASCENDING,
:attr3 => Mongo::ASCENDING,
:attr4 => Mongo::ASCENDING })
然後我的代碼修改的結果,並更新它們。我有幾個進程運行上面的紅寶石應用程序,所有點擊保存mongodb服務器。我有一個相當大的分貝(超過30mil記錄,95gb的大小),並不斷被我的應用程序讀/寫。
我看到一個問題,有時查詢將使用索引,有時它不會(通過mongo shell中的db.currentOp())。爲什麼會發生這種情況,我該如何解決?
感謝您的解釋 - 提出了很多意義! – gylaz 2012-04-27 22:51:06