從關係數據庫背景來看,我總是有這樣的印象:「儘可能努力地使用一個查詢,假設它是有效的」,這意味着對數據庫提出的每個請求都是昂貴的。說到MongoDB,看起來這可能是不可能的,因爲你無法加入表格。每個請求可以多次查詢MongoDB嗎?
我知道它不應該是關係型的,但它們也在推動它用於博客,論壇和我會發現RDBMS更容易處理的目的。
有一些掛機,我一直試圖理解MongoDB或NoSQL的效率。如果我想獲得與某些用戶相關的所有「帖子」(就好像他們被分組了一樣)......使用MySQL,我可能會做一些連接,並用它來獲得它。在MongoDB中,假設我需要單獨的集合,使用大型$ in:['user1','user2','user3','user4',...]是否會很高效?
這種方法在一段時間後變慢了嗎?如果我包含1000個用戶? 如果我需要得到與用戶相關的X,Y,Z帖子說名單,將它使用的MongoDB這樣做是有效的和/或快速:
- 獲取用戶陣列
- 獲取帖子的用戶陣列
2查詢一個請求。在NoSQL中這是不好的做法嗎?
這裏主要的性能差異是每個查詢的開銷; $ in的效率更高,因爲它只針對結果進行一次往返服務器而不是N + M。 – 2011-03-01 16:50:51
@AdaTheDev:如果你很容易做到這一點,我認爲從單一和多線程的重複「X一次性使用$ in」的實驗來看,$是多少比例是非常有趣的,其中X是10,然後是20,然後是30,然後是100。 – 2011-03-01 19:56:40
@Lucas Zamboulis - 請參閱上面的更新。我可能會以博客文章的形式做更多的工作,更詳細 – AdaTheDev 2011-03-04 16:05:10