MongoDB(3)——Index的建立流程1
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的一項,最後將這個索引節點插入。
相關文章
- vue3建立流程備份1Vue
- Application,Activity,Service的建立流程(1)APP
- rebuild index 和 recreate index (重新建立index) 的區別RebuildIndex
- 【Mongodb】如何建立mongodb的replica setMongoDB
- CQL #1:SQLChain 資料庫建立流程SQLAI資料庫
- webpack 流程解析(1):建立compiler之前WebCompile
- webpack 流程解析(3) 建立compilation物件Web物件
- node筆記1:vue+node+mongodb+studio 3T建立登入模組筆記VueMongoDB
- CREATE INDEX index1 ON table1(col1)Index
- Java 物件建立的流程Java物件
- Oracle的Index-1(轉)OracleIndex
- Oracle的Index-3(轉)OracleIndex
- 建立檢視和淺析LOCAL INDEX和GLOBAL INDEXIndex
- Index rebuild --case 1IndexRebuild
- INDEX建立方式對SQL的影響IndexSQL
- 加快建立索引(create / rebuild index) 的幾點索引RebuildIndex
- Mongodb請求處理流程MongoDB
- mongodb命令(1)MongoDB
- zt_如何加速索引index建立索引Index
- CentOS 6.5 MongoDB 3.2.6安裝流程CentOSMongoDB
- pandas(3):索引Index/MultiIndex索引Index
- 建立企業的資訊保安的流程
- mongodb 如何建立資料庫MongoDB資料庫
- MongoDB 3.0 使用者建立MongoDB
- What is the difference between Mysql InnoDB B+ tree index and hash index? Why does MongoDB use B-tree?MySqlIndexMongoDB
- 建立index 使用Online導致的問題Index
- alter index ind1 rebuild 和alter index ind1 rebuild onlineIndexRebuild
- MongoDB複製集資料同步流程MongoDB
- 建立Vue專案流程Vue
- beego建立專案流程Go
- Lucene建立索引流程索引
- Application,Activity,Service的建立流程(2)APP
- 【Android原始碼】View的建立流程Android原始碼View
- 加快create / rebuild index的3個點(zt)RebuildIndex
- mongodb 分片叢集建立分片集合MongoDB
- mongodb資料庫如何建立索引?MongoDB資料庫索引
- MongoDB如何在後臺建立索引MongoDB索引
- MongoDB系列--輕鬆應對面試中遇到的MongonDB索引(index)問題MongoDB面試索引Index