樹在資料庫中的應用

2021-08-08 14:46:19 字數 1668 閱讀 1379

1、索引在資料庫中的作用

最基本的查詢演算法是順序查詢,遍歷表然後逐行匹配行值是否等於待查詢的關鍵字,時間複雜度為

o(n),

不適合資料量大的時候。在資料之外,資料庫還維護著滿足特定查詢演算法的資料結構,這些資料結構以某

種方式引用資料,這樣就可以在這些資料結構上實現高階查詢演算法,這種資料結構就是,索引。

索引是對資料表中乙個或者多個列值進行排序的結構。與在表中搜尋所有行相比,所引用指標指向儲存在表

中指定列的資料值,然後根據指定的次序排列這些指標。因為索引占用磁碟空間,影響資料更新速度,所以

只有當經常查詢列中的資料時,才建立索引。

2、

b+樹在資料庫索引中的應用

目前大部分資料庫系統和檔案系統都採用b-樹或者

b+樹作為索引結構。

在資料庫索引中

b+樹按照下列方式進行組織: (

1)葉節點組織方式,

b+樹的查詢鍵是資料檔案的主鍵,且索引是稠密的。葉節點為儲存的資料檔案設

有鍵和指針對,資料檔案可以按主鍵排序,也可以不按主鍵排序;資料檔案按主鍵排序,且

b+樹是稀

疏索引,在葉節點中為資料檔案的每乙個塊設有乙個鍵,只針對。資料檔案不按鍵屬性排序,且該屬 性是

b+樹的查詢鍵,每個屬性設有乙個鍵、指針對。其中指標執行排序鍵值為

k的第乙個。 (

2)非葉節點組織方式。

b+樹非葉子節點形成了葉節點上的多級稀疏索引。每乙個非葉節點上至少有

ceilm/2

個指標,至多有

m個指標。

3、

b+樹索引的插入和刪除

1)插入:需要插入新的鍵值,按照

b-樹插入演算法 (

2)刪除:需要刪除的鍵值,按照

b-樹刪除演算法

4、為什麼要是用b-樹

索引本身很大,不能儲存在記憶體上,應儲存在外部磁碟上,索引應儘量減少

i/o訪問次數。

資料庫巧妙利用磁碟預讀原理,直接申請乙個頁,保證節點儲存在乙個頁裡,又因為計算機儲存分配都是按頁

對齊的,因此實現了乙個

node

只需要i/o

一次。

5

、mysql中的索引(1

)b-樹索引(使用最頻繁),因為b-樹索引的儲存結構在資料庫的資料檢索中表現優異。

將實際儲存的資料都放在葉子節點

(2)hash索引:把索引以hash形式組織起來,hash結構每個鍵只對應乙個值,以雜湊表方式分布,因此

不支援範圍查詢和排序功能。

(3)fulltext

(4)r-樹索引

6

、索引的分類

1、普通索引:基本索引,沒有限制

2、唯一索引:索引列的值必須是唯一的,允許有空值

3、主鍵索引特殊的唯一索引,不允許有空值

4、全文索引:只可以用於myisam表,針對較大的資料,生成全文索引很耗時間

5、組合索引:為了更多地提高mysql的效率可以建立組合索引,遵循最左字首原則。

xml在資料庫中的應用

1。將xml文件儲存為乙個文字塊 create a table to hold the manuals for the games statement s conn.createstatement s.executeupdate create table manuals gameid int,man...

在資料庫應用系統中資料庫的開發

在資料庫應用系統中資料庫的開發 乙個成功的資訊管理系統由50 的業務 50 的軟體組成 而50 的軟體又是由25 的程式 25 的資料庫組成。由此可見資料庫在資訊管理系統中佔的重要位置,或許會有人說了 資料庫不就是建幾張表嗎?有那麼重要嗎?如果按照你說的那樣,既然ms已經有了vb 大家都知道vb中自...

索引在資料庫中的應用分析

引是提高資料查詢最有效的方法,也是最難全面掌握的技術,因為正確的索引可能使效率提高10000倍,而無效的索引可能是浪費了資料庫空間,甚至大大降低查詢效能。索引的管理成本 1 儲存索引的磁碟空間 2 執行資料修改操作 insert update delete 產生的索引維護 3 在資料處理時回需額外的...