大多數(shù)傳統(tǒng)的關(guān)系數(shù)據(jù)庫使用“面向行”的存儲(chǔ),這意味著與給定行相關(guān)聯(lián)的所有數(shù)據(jù)都會(huì)存儲(chǔ)在一起。相比之下,面向列的DBMS將來自給定列的所有數(shù)據(jù)存儲(chǔ)在一起,以便更快地提供數(shù)據(jù)倉庫式查詢。關(guān)于數(shù)據(jù)庫儲(chǔ)存的形式,無序存儲(chǔ)是按照記錄插入的順序?qū)ζ溥M(jìn)行存儲(chǔ)的方法。這樣的存儲(chǔ)提供了良好的插入效率(復(fù)雜度為 有序存儲(chǔ)是按順序存儲(chǔ)記錄的方法,并且可能需要在插入新記錄時(shí)重新排列或增加文件大小,從而導(dǎo)致插入效率較低。但是,有序存儲(chǔ)提供了更有效的檢索,因?yàn)橛涗浺杨A(yù)先排序,使得復(fù)雜度只有 ISAM是索引順序訪問方法的縮寫,它是一種用于創(chuàng)建、維護(hù)和操作從隨機(jī)數(shù)據(jù)文件記錄中提取的關(guān)鍵字段索引的方法,以實(shí)現(xiàn)對所需文件記錄的快速檢索。在ISAM系統(tǒng)中,數(shù)據(jù)被轉(zhuǎn)換成字段長度固定的記錄。最初為了加快磁帶系統(tǒng)的訪問速度,記錄是按照順序存儲(chǔ)的。之后由于向表中引入了包含“指針”的索引,ISAM允許檢索單個(gè)記錄而無須搜索整個(gè)數(shù)據(jù)集。對數(shù)據(jù)的其他修改也同樣不需要更改其他數(shù)據(jù),只需要更改相關(guān)的表和索引。 堆文件是大小可變的無序記錄的列表。通過在文件末尾添加新記錄,按時(shí)間順序排列的方法實(shí)現(xiàn)高效的插入。但由于搜索必須是線性的,它的檢索效率較低。 B+樹是一個(gè)N叉樹,主要由根、內(nèi)部節(jié)點(diǎn)和葉子組成。其中,根可以是葉子或有兩個(gè)及兩個(gè)以上子節(jié)點(diǎn)的節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)不盡相同但都數(shù)量較多。B+樹也可以被視為每個(gè)節(jié)點(diǎn)僅包含鍵(不是鍵值對)并且在底部添加了附加級別的鏈接葉的B樹。 哈希函數(shù)根據(jù)記錄中的一個(gè)或多個(gè)字段計(jì)算要存儲(chǔ)記錄的頁面地址。通過對哈希函數(shù)進(jìn)行選擇可以確保地址均勻分布在地址空間中。 |
|