理论基础 —— 索引
生活随笔
收集整理的這篇文章主要介紹了
理论基础 —— 索引
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
【概述】
當數(shù)據(jù)量不是很大時,查找技術足以滿足需求,但對于計算機應用程序來說,其是以大型數(shù)據(jù)庫為中心,并將大型數(shù)據(jù)庫作為文件存放于外存中的,當需要進行查找操作時,查找技術的處理過于緩慢,因此有了索引技術。
索引是為了加快查找速度而設計的一種數(shù)據(jù)結(jié)構(gòu),一個文件可能有多個相關的索引,每個索引往往只支持一個關鍵碼,通過索引可以實現(xiàn)對文件中記錄的快速訪問,其常用于組織大型數(shù)據(jù)庫以及磁盤文件。
關于索引技術的基本概念:
- 文件:存儲在外存上的數(shù)據(jù)的集合
- 記錄:由若干數(shù)據(jù)項組成的數(shù)據(jù)元素,是文件進行存取的基本單位
- 數(shù)據(jù)項:數(shù)據(jù)記錄中最基本的、不可分割的數(shù)據(jù)單位,是文件中可使用的最小單位
- 索引:將關鍵碼與其對應的記錄相關聯(lián)的過程,隸屬于某一文件
- 索引項:由關鍵碼及關鍵碼對應的記錄在存取器中的位置等信息組成,是構(gòu)成索引的基本單位
- 靜態(tài)索引:在文件創(chuàng)建時即生成索引結(jié)構(gòu),一旦生成就固定,只有當文件再組織時才發(fā)生改變
- 動態(tài)索引:在文件創(chuàng)建時即生成索引結(jié)構(gòu),當文件執(zhí)行插入、刪除等操作時,索引結(jié)構(gòu)隨之改變
- 線性索引:索引項組織為線性結(jié)構(gòu)
- 樹形索引:索引項組織為樹形結(jié)構(gòu)
- 多級索引:對于某些大型文件,其索引本身可能也很大,在這種情況下,可對索引再建一索引,從而構(gòu)成多級索引結(jié)構(gòu)
【線性索引技術】
線性索引是將索引項集合組織為線性結(jié)構(gòu),即索引表,其常見的形式有以下三種:
- 稠密索引:點擊這里
- 分塊索引:點擊這里
- 倒排索引:點擊這里
【樹形索引技術】
由于樹結(jié)構(gòu)每個結(jié)點可以存儲一個元素,擁有多個孩子,那么在元素非常多的時候,就使得要么樹的度非常大,要么樹的高度非常大,這就使得在外存查找時,內(nèi)存存取外存的次數(shù)非常多,嚴重影響了時間效率。
為了提高時間效率,就要打破每一結(jié)點只能存儲一個元素的限制,于是引入了多路查找樹(Muitl-way Search Tree),其每一結(jié)點的孩子數(shù)可以多于兩個,且每一結(jié)點可存儲多個元素。
而樹形索引技術,就是將索引項組織為使用多路查找樹的樹形結(jié)構(gòu),其常見的形式有以下四種:
- 2-3 樹:點擊這里
- B 樹、B+ 樹、B* 樹:點擊這里
總結(jié)
以上是生活随笔為你收集整理的理论基础 —— 索引的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 排列组合(HDU-1521)
- 下一篇: permutation 1(HDU-66