MongoDB(3)——Index的建立流程1

宣小超發表於2017-05-29

1. 建立

除了使用者手動建立索引,系統會為每個Collection建立一個主鍵索引,下面分析的就是這個主鍵索引的建立過程。
原來我們說到Collection的建立是在Database的createCollection中開始。

進入_getOrCreateCollectionInstance方法,確實有Collection的建立語句。

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

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

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

2. 插入資料建立索引
前面我們說過Collection中是如何插入資料的,同樣是在_insertDocuments方法中,我們最後有一段沒有分析,如下圖所示程式碼,首先獲得record的id,然後構造成一個bsonRecord,這個BsonRecord包含兩項,一個Id,一個指向Record的指標,這樣就構造了Index的一項,最後將這個索引節點插入。


相關文章