色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

btree和mysql結(jié)構(gòu)圖解

B-tree是一種被廣泛應(yīng)用于數(shù)據(jù)庫中的數(shù)據(jù)索引結(jié)構(gòu)。在MySQL中,B-tree被用于存儲(chǔ)索引和數(shù)據(jù)。

一個(gè)B-tree包括一個(gè)根節(jié)點(diǎn)、一些內(nèi)部節(jié)點(diǎn)和一些葉子節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)都有一個(gè)鍵值和一個(gè)對(duì)應(yīng)的指針,指針可能指向一個(gè)子節(jié)點(diǎn)或者一個(gè)數(shù)據(jù)行。

struct value {
...
};
struct node {
node *parent;			// 指向父節(jié)點(diǎn)
off_t offset;			// 在磁盤中的偏移量
unsigned level:16,		// 節(jié)點(diǎn)所在層數(shù)
state:16,		// 節(jié)點(diǎn)狀態(tài):包括未修改、刪除等
count:16;		// 鍵值個(gè)數(shù)
char pad[2];
value keys[PAGESIZE / 2];	// 鍵值
pvoid ptrs[PAGESIZE / 2 + 1];	// 指針
};

在MySQL中,每個(gè)表都由多個(gè)數(shù)據(jù)頁組成。每個(gè)數(shù)據(jù)頁都包含一個(gè)B-tree索引,用于實(shí)現(xiàn)對(duì)表的數(shù)據(jù)行的查找。下圖展示了MySQL一個(gè)包含4條數(shù)據(jù)行的表的B-tree結(jié)構(gòu)。

leaf1<----+
+-------------------+
+---|  key0 | data info0 |
|   +-------------------- 
|
|   +--------------------   
+---|  key1 | data info1 |      
+-------------------
leaf2<----+ 
+-------------------+
|   +--------------------   
+---|  key1 | data info2 |     
|   +--------------------  
|
|   +--------------------   
+---|  key2 | data info3 |    
+-------------------- 
leaf3<----+
+-------------------+
|   +--------------------    
+---|  key2 | data info4 |      
+--------------------

每一棵B-tree都有一個(gè)根節(jié)點(diǎn)。對(duì)于一個(gè)包含N條記錄的表,它的B-tree總共有l(wèi)og(N)層。根據(jù)B-tree,MySQL可以快速地查找一個(gè)記錄。例如,要查找一個(gè)匹配key0的記錄,MySQL只需要從根節(jié)點(diǎn)開始順著B-tree往下查找即可。