我正在記錄用戶在我們網站上做出的不同操作。每個操作可以是不同的類型:評論,搜索查詢,頁面視圖,投票等......這些類型中的每一個都有其自己的模式和公共信息。例如:Mongodb:針對性能/索引的多個特定集合或一個「全部存儲」集合
comment : {"_id":(mongoId), "type":"comment", "date":4/7/2012,
"user":"Franck", "text":"This is a sample comment"}
search : {"_id":(mongoId), "type":"search", "date":4/6/2012,
"user":"Franck", "query":"mongodb"} etc...
基本上,在面向對象或RDBMS,我會設計一個Action類/表和一組繼承的類/表(點評,搜索,投票)的。
由於MongoDb沒有模式,我傾向於設置一個獨特的集合(「Actions」),我將存儲這些對象而不是多個集合(collection Actions + collection帶有鏈接鍵的註釋, ...)。
我的問題是:如果我嘗試按特定列搜索,性能/響應時間又如何?
據我瞭解索引最佳實踐,如果我想「每個用戶搜索mongodb」,我會索引列「type」+「查詢」。但它不會涉及整套數據,只有那些類型爲「搜索」的數據。
MongoDb引擎會掃描整個表還是隻關注具有此特定模式的數據?
謝謝!有趣的功能和技巧。 – theAndroid 2012-03-23 11:13:32