1,每個數(shù)據(jù)庫對應(yīng)一個文件夾,文件夾名和庫名相同;
公司主營業(yè)務(wù):網(wǎng)站設(shè)計、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出連山免費做網(wǎng)站回饋大家。
2,(單獨的表空間中) 每張表對應(yīng)幾個文件,文件名和表名相同,innodb引擎中對應(yīng)兩個文件,后綴名為:frm、ibd;
frm文件:存儲的是表結(jié)構(gòu)信息。
ibd文件:存儲的是表里的數(shù)據(jù)、索引等。
二叉樹:當不平衡時,單邊增長,可能退化為線性
紅黑樹:數(shù)據(jù)量大時,深度不可控
AVL樹:相比較與紅黑樹,嚴格平衡,但是增刪情況下,通過旋轉(zhuǎn)再平衡的開銷過大,適合查找場景多的應(yīng)用
Hash: 不支持范圍查找
平衡的多路查找樹,一個結(jié)點存放多個元素。
與紅黑樹相比,在相同的的節(jié)點的情況下,一顆B/B+樹的高度遠遠小于紅黑樹的高度(在下面B/B+樹的性能分析中會提到)。B/B+樹上操作的時間通常由存取磁盤的時間和CPU計算時間這兩部分構(gòu)成,而CPU的速度非???,所以B樹的操作效率取決于訪問磁盤的次數(shù),關(guān)鍵字總數(shù)相同的情況下B樹的高度越小,磁盤I/O所花的時間越少。
m階:節(jié)點中,子節(jié)點數(shù)的最大值(子節(jié)點數(shù),不是結(jié)點存放元素)
1. 樹中每個結(jié)點最多m個子樹(最多m-1個關(guān)鍵字,兩個子樹夾一個關(guān)鍵字)
2. 根節(jié)點最少有1個關(guān)鍵字
3. 非根結(jié)點最少m/2個子樹(m/2 - 1個關(guān)鍵字)
4. 每個關(guān)鍵字排序
5. 所有的葉子結(jié)點位于同一層
6. 每個結(jié)點都存有索引和數(shù)據(jù)
(1)簡介
B+樹是應(yīng)文件系統(tǒng)所需而產(chǎn)生的一種B樹的變形樹(文件的目錄一級一級索引,只有最底層的葉子節(jié)點(文件)保存數(shù)據(jù))非葉子節(jié)點只保存索引,不保存實際的數(shù)據(jù),數(shù)據(jù)都保存在葉子節(jié)點中。所有的非葉子節(jié)點都可以看成索引部分!
(2)B+樹的性質(zhì)(下面提到的都是和B樹不相同的性質(zhì))
1. b+樹有兩種類型的結(jié)點:
1.1 內(nèi)部結(jié)點(索引結(jié)點,非葉結(jié)點): 只存索引,不存數(shù)據(jù)
1.2 葉子結(jié)點 (存數(shù)據(jù))
2. 內(nèi)部結(jié)點 和 葉子結(jié)點的 key遞增排序
3. 每個葉結(jié)點存有相鄰葉結(jié)點的指針
4. 父結(jié)點存有右孩子第一個元素索引
1.磁盤io代價低:b+樹的非葉結(jié)點只存儲索引,不存儲數(shù)據(jù),單一結(jié)點能存放的索引數(shù)更多,樹更矮胖
2. b+樹查詢效率穩(wěn)定:所有查詢必須到葉節(jié)點
3. b+樹葉子節(jié)點為有序表,效率更高,支持范圍查詢。
正常MySQL底層存儲索引默認使用的是B+樹,但是如果設(shè)立了分區(qū)表的情況下,他的底層是如何進行存儲的呢?
查看MySQL對應(yīng)的自己電腦上面的安裝目錄下,是有一個ibd文件,用innblock和bcview兩個小工具,(github上可以搜到),便可以實現(xiàn)對ibd文件的查看,通過對比著沒有設(shè)立分區(qū)的表的ibd文件,就可以看出來
分區(qū)表會將索引分成分區(qū)個個數(shù)的索引樹來存儲索引,也就是分開存儲。