【Monogdb】MongoDB之十大應用設計技巧
來源:懂視網
責編:小采
時間:2020-11-09 14:14:50
【Monogdb】MongoDB之十大應用設計技巧
【Monogdb】MongoDB之十大應用設計技巧:技巧一、速度和完整性的折中 在多個文檔中使用的數據可以采用內嵌(反范式話)的方式,也可以采用引用(范式化)的方式。這種策略并沒有優劣之分,各自都有優缺點。關鍵是要選擇適合自己的應用場景方案。 反范式化會產生不一致的數據。但要是范式化,應用則
導讀【Monogdb】MongoDB之十大應用設計技巧:技巧一、速度和完整性的折中 在多個文檔中使用的數據可以采用內嵌(反范式話)的方式,也可以采用引用(范式化)的方式。這種策略并沒有優劣之分,各自都有優缺點。關鍵是要選擇適合自己的應用場景方案。 反范式化會產生不一致的數據。但要是范式化,應用則

技巧一、速度和完整性的折中 在多個文檔中使用的數據可以采用內嵌(反范式話)的方式,也可以采用引用(范式化)的方式。這種策略并沒有優劣之分,各自都有優缺點。關鍵是要選擇適合自己的應用場景方案。 反范式化會產生不一致的數據。但要是范式化,應用則
技巧一、速度和完整性的折中
在多個文檔中使用的數據可以采用內嵌(反范式話)的方式,也可以采用引用(范式化)的方式。這種策略并沒有優劣之分,各自都有優缺點。關鍵是要選擇適合自己的應用場景方案。 反范式化會產生不一致的數據。但要是范式化,應用則必須在每次確認時做額外一次查找。因為極高的性能和瞬間一致性不可兼得,所以必須要想清楚哪個才是應用最需要的。
考慮因素一般包括:
是否總要額外讀取一次幾乎不怎么改變的數據?
一致性很重要嗎?
要不要快速讀取?
技巧二、適應未來的數據要范式化
范式化可使數據可用性更加長久,未來可以在不同的應用中以不同的方式查詢范式化的數據。這里的前提是有些數據將會一年不斷地被各種應用得到。
技巧三、盡量單個查詢獲得數據
mongodb的數據庫設計應該從應用單元的查詢出發。 應用單元,對于web應用或者移動應用可以將對后端的一次請求視作一個應用單元 對于桌面應用,一次用戶交互可以算是一個應用單元 對于分析系統,一個圖表的加載算作是一個應用單元
技巧四、嵌入關聯數據
當在嵌入和引用文檔之間猶豫不決時候,不防想想查詢的目的是為了獲得字段本身還是為了進一步獲得更加廣泛的信息。如果前者建議采用嵌入關聯數據。
技巧五、嵌入時間點數據
比如某人更新了個人信息,那么就不需要更改其以往的訂單內容
技巧六、不要嵌入不斷增加的數據
mongodb存儲數據的機制決定了對數據的不斷追加數據是很低效的。在正常使用中數據和對象的大小應該相對固定。
技巧七、預填充數據
如果已經知道未來要用到哪些字段,第一次插入是就帶著這些字段會比用到時再創建效率更高。 比如每天都要使用新的集合,最好提前創建。
技巧八、盡可能預先分配空間
只要知道文檔開始比較小,后來會變得確定的大小,就可以使用這種優化方法。 一開始插入文檔的時候就用和最終數據大小一樣的垃圾數據填充。即添加一個garbage字段(其中包含一個字符串,串大小與文檔最終大小相同)
技巧九、用數組存放要匿名訪問的內嵌數據
一個常見的問題就是內嵌信息到底是歐也妮個數據還是用文檔來存。如果確切知道查詢內容就用子文檔存。如果有時不太清楚查詢的具體內容,則要數組。 當知道一些條目的查詢條件時候通常該使用數組。
技巧十:文檔要自給自足
mongodb是一個無腦的大型數據存儲。mongodb幾乎不做任何數據處理,僅僅存儲數據。要盡量遵守這點,避免讓mongodb做些能在客戶端完成的計算。即便是寫小任務,像求平均值或求和,也要放在客戶端去做。
如果要找的信息必須經過計算,且無法直接從文檔中獲得,有兩種定義:
付出高昂的性能代價;優化文檔結構,使得這些信息能夠從文檔中直接獲得。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
【Monogdb】MongoDB之十大應用設計技巧
【Monogdb】MongoDB之十大應用設計技巧:技巧一、速度和完整性的折中 在多個文檔中使用的數據可以采用內嵌(反范式話)的方式,也可以采用引用(范式化)的方式。這種策略并沒有優劣之分,各自都有優缺點。關鍵是要選擇適合自己的應用場景方案。 反范式化會產生不一致的數據。但要是范式化,應用則