溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MongoDB 中使用模式構(gòu)建之屬性模式的

發(fā)布時間:2021-03-11 14:39:22 來源:億速云 閱讀:165 作者:小新 欄目:數(shù)據(jù)庫

小編給大家分享一下MongoDB 中使用模式構(gòu)建之屬性模式的,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

簡單描述:

直接進入了解屬性模式。它特別適合以下的情況:

  1. 有一個大的文檔,但是它其實擁有一些相似的字段,而且這些字段的一個子集具有相同的特征,最后其實需要對這些子集字段進行排序或者查詢;

  2. 實際上也不是所有文檔都會出現(xiàn)需要的排序字段;

  3. 或者上述兩個條件均滿足
    事實上考慮到性能方面的原因,為了優(yōu)化搜索可能需要許多索引才能照顧到這些子集。但是創(chuàng)建越多的索引也只會導(dǎo)致性能的下降。屬性模式為這種情況提供了一個很好的解決方案。

實例:

一個訂單數(shù)據(jù)文檔,其實是有很多需要記錄的時間,比如創(chuàng)建時間,支付時間,發(fā)貨時間等等。在設(shè)計數(shù)據(jù)結(jié)構(gòu)的時候當(dāng)然第一時間就會想到如圖:
MongoDB 中使用模式構(gòu)建之屬性模式的

實際上這種設(shè)計在時間類型比較少的情況下是沒有太大問題,但是結(jié)合了實際業(yè)務(wù)場景,一張訂單的時間當(dāng)然不會太少,有時候為了優(yōu)化排序,不得不建立相應(yīng)的所以,現(xiàn)在問題就來的,根據(jù)這么多字段逐個建立索引那可能建立很多,這樣反而會降低整體查詢的性能。那么這時候使用屬性模式就很合適了。如下圖:

MongoDB 中使用模式構(gòu)建之屬性模式的如果訂單數(shù)據(jù)結(jié)構(gòu)考慮使用了這種模式后,就不需要反復(fù)為相似的字段子集建立索引,大大提高查詢效率。

結(jié)論:

屬性模式針對每個文檔中許多類似字段提供了更簡單的文檔索引。通過將這個數(shù)據(jù)子集移動到一個鍵值子文檔中,我們可以使用不確定的字段名,為信息添加額外的限定符,并更清楚地說明原始字段和值的關(guān)系。當(dāng)我們使用屬性模式時,由于需要的索引更少,查詢變得更簡單更快。

看完了這篇文章,相信你對“MongoDB 中使用模式構(gòu)建之屬性模式的”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI