簡體   English   中英

集合設置 MongoDB 縮放

[英]Collection set up MongoDB scaling

我正在嘗試概念化擴展 MongoDB 數據庫的最佳方法。

例如,假設您想在后端使用 MongoDB 創建一個在不同州銷售房屋的網站。 對於未來的可擴展性和站點性能,最佳實踐是為每個 state 設置多個 collections 還是列出 USA 下的所有內容,然后在集合中搜索或找到 state?

**Collection - Texas**

{"_id":{"$oid":"xxxxxxxxxxxxx"},"name":"Modern loft","state":"Texas"}
{"_id":{"$oid":"xxxxxxxxxxxxx"},"name":"Vacant Plot","state":"Texas"}
x 1000 entries

**Collection - USA**

{"_id":{"$oid":"xxxxxxxxxxxxx"},"name":"Family Home","state":"Texas"}
{"_id":{"$oid":"xxxxxxxxxxxxx"},"name":"Beach House","state":"California"}
x 1000 entries

這完全取決於您將如何搜索和呈現數據......

從性能的角度來看,即使最好將數據庫中的數據按 state 和 collections 拆分來代表城市,但這意味着您的應用程序中有額外的邏輯來支持 model/cities 和全局詳細信息將從中獲取有點復雜。

如果您將所有內容都放在單個集合中並且選擇好的索引不會有任何問題,在數據庫增長的某個時間點,您只需將集合拆分為更多分片,但處理數據庫的邏輯將保持簡單因為您將把所有東西都放在一個地方。 (這是您選擇的數據庫可以提供幫助的地方,因為分片機制是內置的並且非常易於配置)

所以對我來說,將數據拆分到各州似乎是一個很好的折衷方案,因為俄勒岡州的人們不需要查詢所有美國數據來在俄勒岡州的某個小村庄找到很少的房子,因為他們只能搜索俄勒岡州的集合,但在同時,如果您對集合進行分片並且您有良好的分片索引,其中包括 state,則查詢將 go 僅針對俄勒岡州數據所在的分片...,使用分片還有其他技巧,例如,如果您搜索帶有游泳的房屋池,但您沒有在過濾器中包含 state (如果它是分片鍵),查詢將對所有分片進行分散收集以找到那些豪斯......

我希望能回答你的問題...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM