MongoDB 3 Index的建立流程1

2022-04-08 10:11:46 字數 620 閱讀 8353

除了使用者手動建立索引,系統會為每個collection建立乙個主鍵索引,下面分析的就是這個主鍵索引的建立過程。

原來我們說到collection的建立是在database的createcollection中開始。

進入_getorcreatecollectioninstance方法,確實有collection的建立語句。

那麼collection的建構函式又幹了些什麼?從下圖可以看到,collection的構造過程中,確實做了一些與索引相關的工作,但還不知道究竟做了些什麼。我們繼續向下走。

進入init函式,其實並不是每一句都弄清楚了,但是看到_setupinmemorystructures這個函式就吸引了我。

進入setupinmemorystructures函式終於發現了看到了關於獲取index的函式,追蹤發現getindex函式確實就是建立index的方法。經過這一系列步驟,索引結構就確定了。

前面我們說過collection中是如何插入資料的,同樣是在_insertdocuments方法中,我們最後有一段沒有分析,如下圖所示**,首先獲得record的id,然後構造成乙個bsonrecord,這個bsonrecord包含兩項,乙個id,乙個指向record的指標,這樣就構造了index的一項,最後將這個索引節點插入。

MongoDB 3 Index的建立流程1

1 建立 除了使用者手動建立索引,系統會為每個collection建立乙個主鍵索引,下面分析的就是這個主鍵索引的建立過程。原來我們說到collection的建立是在database的createcollection中開始。進入 getorcreatecollectioninstance方法,確實有c...

MongoDB入門(3) MongoDB的索引

檢視索引 建立索引 1表示公升序,1表示降序 索引的種類 索引的名字 db.test table.ensureindex 索引的唯一性 db test table ensureindex db.test table insert 插入成功 db.test table insert 插入失敗,鍵衝突 ...

立創EDA的3d模型(step)匯入

看到這篇文章的讀者應該都知道嘉立創和其開發的立創eda為何物。這裡多說一句,2021會推出立創eda專業版,功能更強大,繪圖從svg轉為webgl,可以期待一下。目前正在嘗試往立創eda 標準版 上遷移之前ad19畫的板,然後遇到乙個step模型匯入的問題,特此記錄。至於怎麼從ad封裝庫中提取ste...