共享下MongoDB子物件搜尋效能測試資料

2021-08-30 20:04:49 字數 804 閱讀 1385

mongodb支援索引,乙個集合上可以建立唯

一、非唯一索引,可以建立幾個索引。可以將多列組合起來做成復合索引。通過索引檢索資料效能很好,如果沒有索引進行檢索,會導致全集合的掃瞄,效能很差。即使他是記憶體資料庫。

由於我最近的專案上需要子物件集合,需要對其進行檢索為此針對此進行了一次驗證。這裡將驗證的結果共享給大家。

集合樣例:

,,,gtype:"abc"}

其中gid是全域性唯一的,gtype總共只有7個值。glist裡面的子集合(子物件)的個數是隨機的,個數範圍在3到200之間。其中只有5000條資料有gtag,其他資料沒有gtag。

分別有三個應用,第乙個應用需要按照gid檢索資料,第二個應用需要通過gtag檢索資料,第三個應用通過gtype檢索資料。

為了獲得效能,需要做乙個測試。為了得到的資料接近實際情況,我將生產系統的資料拿來做測試。考慮到32位mongodb處理的資料條目可位元組數的限制,灌入120萬條資料,再多的資料會導致mongodb無法簡歷索引,mongodb不可用。

為了測試其效能,首先進行一次全集合的遍歷,將所有的資料讀入記憶體。測試情況如下:

1、 分別就gid、gtag、gtype建立索引,進行檢索。每個業務執行10萬次。返回結果集中第一條資料。

得到結果:

檢索gid業務消耗時間平均為0.6毫秒 ,檢索gtype業務消耗時間平均為1.3毫秒,檢索gtag業務消耗時間為7毫秒

2、返回列對效能的影響

返回的列數、列的複雜度、以及每行的位元組數會影響到效能。越複雜的列、列數越多、返回的位元組數越多,消耗時間越多。

由於時間關係,沒有進行分頁業務的效能的測試。

Linux下共享庫搜尋方式

在解析共享庫依賴時,會檢查依賴選項中是否有斜線 如果有,那麼會將其看成為路徑,在該路徑下載入共享庫。如果沒有協議,按一下方式搜尋 1 如果可執行檔案的dt rpath執行時庫路徑列表中包含目錄,但不包含dt runapth列表時,那麼在該包含目錄中搜尋改共享庫。2 如果定義了ld library p...

如何移除容器下所有子顯示物件

容器中的子顯示物件分為兩類 處於顯示列表中的子顯示物件。1 被numchildren所記錄的。2 由容器graphics物件繪製出來的向量圖。這個向量圖不屬於shape型別,不在容器的顯示列表中,不被numchildren所記錄。而是做為容器的背景向量圖存在,始終處於最後面。因此,準確的說,如果要移...

Linux下動態共享庫載入時的搜尋路徑詳解

對動態庫的實際應用還不太熟悉的讀者可能曾經遇到過類似 error while loading shared libraries 這樣的錯誤,這是典型的因為需要的動態庫不在動態鏈結器ld.so的搜尋路徑設定當中導致的。1 elf可執行檔案中動態段中dt rpath所指定的路徑。這實際上是通過一種不算很...