欧美日韩一区二区视频在线_欧美破处大片在线视频_午夜日韩在线_亚洲高清免费_午夜在线a亚洲v天堂网2018_亚洲午夜久久久久久尤物_国产精品www._久久亚洲一区_亚洲美女色禁图_久久人人精品

快消品貨源批發市場
快消品貨源分銷平臺
 
 
當前位置: 貨源批發網 » 網商學院 » 獨立商城 » 數據庫索引的實現原理

數據庫索引的實現原理

放大字體  縮小字體 發布日期:2024-11-08 07:37:57  來源:電商聯盟  作者:樂發網  瀏覽次數:2

說白了,索引問題就是一個查找問題。。。

數據庫索引,是數據庫管理系統中一個排序的數據結構,以協助快速查詢、更新數據庫表中數據。索引的實現通常使用B樹及其變種B+樹
在數據之外,數據庫系統還維護著滿足特定查找算法的數據結構,這些數據結構以某種方式引用(指向)數據,這樣就可以在這些數據結構上實現高級查找算法。這種數據結構,就是索引。
為表設置索引要付出代價的:一是增加了數據庫的存儲空間,二是在插入和修改數據時要花費較多的時間(因為索引也要隨之變動)。
上圖展示了一種可能的索引方式。左邊是數據表,一共有兩列七條記錄,最左邊的是數據記錄的物理地址(注意邏輯上相鄰的記錄在磁盤上也并不是一定物理相鄰的)。為了加快Col2的查找,可以維護一個右邊所示的二叉查找樹,每個節點分別包含索引鍵值和一個指向對應數據記錄物理地址的指針,這樣就可以運用二叉查找在O(log2n)的復雜度內獲取到相應數據。

創建索引可以大大提高系統的性能。
第一,通過創建唯一性索引,可以保證數據庫表中每一行數據的唯一性。
第二,可以大大加快數據的檢索速度,這也是創建索引的最主要的原因。
第三,可以加速表和表之間的連接,特別是在實現數據的參考完整性方面特別有意義。
第四,在使用分組和排序子句進行數據檢索時,同樣可以顯著減少查詢中分組和排序的時間。
第五,通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統的性能。 
 
也許會有人要問:增加索引有如此多的優點,為什么不對表中的每一個列創建一個索引呢?因為,增加索引也有許多不利的方面。
第一,創建索引和維護索引要耗費時間,這種時間隨著數據量的增加而增加。
第二,索引需要占物理空間,除了數據表占數據空間之外,每一個索引還要占一定的物理空間,如果要建立聚簇索引,那么需要的空間就會更大。
第三,當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了數據的維護速度。
 
索引是建立在數據庫表中的某些列的上面。在創建索引的時候,應該考慮在哪些列上可以創建索引,在哪些列上不能創建索引。一般來說,應該在這些列上創建索引:在經常需要搜索的列上,可以加快搜索的速度;在作為主鍵的列上,強制該列的唯一性和組織表中數據的排列結構;在經常用在連接的列上,這些列主要是一些外鍵,可以加快連接的速度;在經常需要根據范圍進行搜索的列上創建索引,因為索引已經排序,其指定的范圍是連續的;在經常需要排序的列上創建索引,因為索引已經排序,這樣查詢可以利用索引的排序,加快排序查詢時間;在經常使用在WHERe子句中的列上面創建索引,加快條件的判斷速度。
 
同樣,對于有些列不應該創建索引。一般來說,不應該創建索引的的這些列具有下列特點:
第一,對于那些在查詢中很少使用或者參考的列不應該創建索引。這是因為,既然這些列很少使用到,因此有索引或者無索引,并不能提高查詢速度。相反,由于增加了索引,反而降低了系統的維護速度和增大了空間需求。
第二,對于那些只有很少數據值的列也不應該增加索引。這是因為,由于這些列的取值很少,例如人事表的性別列,在查詢的結果中,結果集的數據行占了表中數據行的很大比例,即需要在表中搜索的數據行的比例很大。增加索引,并不能明顯加快檢索速度。
第三,對于那些定義為text, image和bit數據類型的列不應該增加索引。這是因為,這些列的數據量要么相當大,要么取值很少。
第四,當修改性能遠遠大于檢索性能時,不應該創建索引。這是因為,修改性能和檢索性能是互相矛盾的。當增加索引時,會提高檢索性能,但是會降低修改性能。當減少索引時,會提高修改性能,降低檢索性能。因此,當修改性能遠遠大于檢索性能時,不應該創建索引。
 
根據數據庫的功能,可以在數據庫設計器中創建三種索引:唯一索引、主鍵索引和聚集索引
唯一索引 
唯一索引是不允許其中任何兩行具有相同索引值的索引。
當現有數據中存在重復的鍵值時,大多數數據庫不允許將新創建的唯一索引與表一起保存。數據庫還可能防止添加將在表中創建重復鍵值的新數據。例如,如果在employee表中職員的姓(lname)上創建了唯一索引,則任何兩個員工都不能同姓。主鍵索引數據庫表經常有一列或列組合,其值唯一標識表中的每一行。該列稱為表的主鍵。在數據庫關系圖中為表定義主鍵將自動創建主鍵索引,主鍵索引是唯一索引的特定類型。該索引要求主鍵中的每個值都唯一。當在查詢中使用主鍵索引時,它還允許對數據的快速訪問。聚集索引在聚集索引中,表中行的物理順序與鍵值的邏輯(索引)順序相同。一個表只能包含一個聚集索引。
如果某索引不是聚集索引,則表中行的物理順序與鍵值的邏輯順序不匹配。與非聚集索引相比,聚集索引通常提供更快的數據訪問速度。
 
 
局部性原理與磁盤預讀
由于存儲介質的特性,磁盤本身存取就比主存慢很多,再加上機械運動耗費,磁盤的存取速度往往是主存的幾百分分之一,因此為了提高效率,要盡量減少磁盤I/O。為了達到這個目的,磁盤往往不是嚴格按需讀取,而是每次都會預讀,即使只需要一個字節,磁盤也會從這個位置開始,順序向后讀取一定長度的數據放入內存。這樣做的理論依據是計算機科學中著名的局部性原理當一個數據被用到時,其附近的數據也通常會馬上被使用。程序運行期間所需要的數據通常比較集中。
由于磁盤順序讀取的效率很高(不需要尋道時間,只需很少的旋轉時間),因此對于具有局部性的程序來說,預讀可以提高I/O效率。
預讀的長度一般為頁(page)的整倍數。頁是計算機管理存儲器的邏輯塊,硬件及操作系統往往將主存和磁盤存儲區分割為連續的大小相等的塊,每個存儲塊稱為一頁(在許多操作系統中,頁得大小通常為4k),主存和磁盤以頁為單位交換數據。當程序要讀取的數據不在主存中時,會觸發一個缺頁異常,此時系統會向磁盤發出讀盤信號,磁盤會找到數據的起始位置并向后連續讀取一頁或幾頁載入內存中,然后異常返回,程序繼續運行。
B-/+Tree索引的性能分析
到這里終于可以分析B-/+Tree索引的性能了。
上文說過一般使用磁盤I/O次數評價索引結構的優劣。先從B-Tree分析,根據B-Tree的定義,可知檢索一次最多需要訪問h個節點。數據庫系統的設計者巧妙利用了磁盤預讀原理,將一個節點的大小設為等于一個頁,這樣每個節點只需要一次I/O就可以完全載入。為了達到這個目的,在實際實現B-Tree還需要使用如下技巧:
每次新建節點時,直接申請一個頁的空間,這樣就保證一個節點物理上也存儲在一個頁里,加之計算機存儲分配都是按頁對齊的,就實現了一個node只需一次I/O。
B-Tree中一次檢索最多需要h-1次I/O(根節點常駐內存),漸進復雜度為O(h)=O(logdN)。一般實際應用中,出度d是非常大的數字,通常超過100,因此h非常小(通常不超過3)。
而紅黑樹這種結構,h明顯要深的多。由于邏輯上很近的節點(父子)物理上可能很遠,無法利用局部性,所以紅黑樹的I/O漸進復雜度也為O(h),效率明顯比B-Tree差很多。
 
綜上所述,用B-Tree作為索引結構效率是非常高的。
 
 
應該花時間學習B-樹和B+樹數據結構
=============================================================================================================
1)B樹
B樹中每個節點包含了鍵值和鍵值對于的數據對象存放地址指針,所以成功搜索一個對象可以不用到達樹的葉節點。
成功搜索包括節點內搜索和沿某一路徑的搜索,成功搜索時間取決于關鍵碼所在的層次以及節點內關鍵碼的數量。
在B樹中查找給定關鍵字的方法是:首先把根結點取來,在根結點所包含的關鍵字K1,…,kj查找給定的關鍵字(可用順序查找或二分查找法),若找到等于給定值的關鍵字,則查找成功;否則,一定可以確定要查的關鍵字在某個Ki或Ki+1之間,于是取Pi所指的下一層索引節點塊繼續查找,直到找到,或指針Pi為空時查找失敗。
2)B+樹
B+樹非葉節點中存放的關鍵碼并不指示數據對象的地址指針,非也節點只是索引部分。所有的葉節點在同一層上,包含了全部關鍵碼和相應數據對象的存放地址指針,且葉節點按關鍵碼從小到大順序鏈接。如果實際數據對象按加入的順序存儲而不是按關鍵碼次數存儲的話,葉節點的索引必須是稠密索引,若實際數據存儲按關鍵碼次序存放的話,葉節點索引時稀疏索引。
B+樹有2個頭指針,一個是樹的根節點,一個是最小關鍵碼的葉節點。
所以 B+樹有兩種搜索方法:
一種是按葉節點自己拉起的鏈表順序搜索。
一種是從根節點開始搜索,和B樹類似,不過如果非葉節點的關鍵碼等于給定值,搜索并不停止,而是繼續沿右指針,一直查到葉節點上的關鍵碼。所以無論搜索是否成功,都將走完樹的所有層。
B+ 樹中,數據對象的插入和刪除僅在葉節點上進行。
這兩種處理索引的數據結構的不同之處:
a,B樹中同一鍵值不會出現多次,并且它有可能出現在葉結點,也有可能出現在非葉結點中。而B+樹的鍵一定會出現在葉結點中,并且有可能在非葉結點中也有可能重復出現,以維持B+樹的平衡。
b,因為B樹鍵位置不定,且在整個樹結構中只出現一次,雖然可以節省存儲空間,但使得在插入、刪除操作復雜度明顯增加。B+樹相比來說是一種較好的折中。
c,B樹的查詢效率與鍵在樹中的位置有關,最大時間復雜度與B+樹相同(在葉結點的時候),最小時間復雜度為1(在根結點的時候)。而B+樹的時候復雜度對某建成的樹是固定的。

樂發網超市批發網提供超市貨源信息,超市采購進貨渠道。超市進貨網提供成都食品批發,日用百貨批發信息、微信淘寶網店超市采購信息和超市加盟信息.打造國內超市采購商與批發市場供應廠商搭建網上批發市場平臺,是全國批發市場行業中電子商務權威性網站。

本文內容整合網站:百度百科知乎淘寶平臺規則

本文來源: 數據庫索引的實現原理

分享與收藏:  網商學院搜索  告訴好友  關閉窗口  打印本文 本文關鍵字:
 
更多..資源下載
獨立商城圖文
獨立商城網商學院推薦
獨立商城點擊排行
 
手機版 手機掃描訪問
欧美日韩一区二区视频在线_欧美破处大片在线视频_午夜日韩在线_亚洲高清免费_午夜在线a亚洲v天堂网2018_亚洲午夜久久久久久尤物_国产精品www._久久亚洲一区_亚洲美女色禁图_久久人人精品
美女视频黄 久久| 韩国亚洲精品| 一区二区三区精品视频在线| 久久久久久一级片| 日韩午夜在线观看| 欧美日韩成人在线一区| 欧美日韩三级视频| 欧美久久婷婷综合色| 在线播放/欧美激情| 制服丝袜亚洲精品中文字幕| 91精品国产免费| 精品欧美一区二区三区精品久久| 欧美一区午夜视频在线观看| 精品福利一二区| 国产日韩欧美麻豆| 中文字幕欧美一| 亚洲午夜电影网| 久久99久久精品| 成人免费视频免费观看| 97se亚洲国产综合自在线不卡| 成人一级黄色片| 白白色 亚洲乱淫| 欧美天天在线| 久久精品天堂| 日韩一级片网站| 中文字幕免费观看一区| 一区二区三区精品久久久| 午夜精品一区二区三区电影天堂 | 欧美一区二区三区不卡| 精品毛片乱码1区2区3区| 中文字幕电影一区| 亚洲国产精品视频| 国产精品一级在线| 欧美日韩国产精品一卡| 亚洲一区激情| 日韩欧美国产午夜精品| 国产欧美日本一区视频| 亚洲va欧美va天堂v国产综合| 国产在线精品一区二区夜色 | 成人av影院在线| 91麻豆自制传媒国产之光| 亚洲麻豆视频| 欧美久久高跟鞋激| 国产精品久久久久久久久免费桃花| 香蕉乱码成人久久天堂爱免费| 国产精品一区二区x88av| 国模一区二区三区| 欧美在线999| 国产精品色在线观看| 蜜臀精品一区二区三区在线观看| 国产成人免费在线观看| 影音先锋国产精品| 欧美一区二区在线视频| 久久se这里有精品| 亚洲一级二级| 欧美精品aⅴ在线视频| 自拍偷拍国产精品| 国产成人亚洲综合色影视| 国产精品日韩高清| 2021久久国产精品不只是精品| 亚洲一区二区成人在线观看| 成人国产精品免费网站| 色综合av在线| 中文字幕亚洲在| 国产成人日日夜夜| 91福利在线免费观看| 亚洲视频在线一区| 99久久亚洲一区二区三区青草| 久久国产99| 中文字幕欧美一区| 91女人视频在线观看| 欧美日韩精品三区| 亚洲成人av资源| 在线免费日韩片| 久久久久久免费| 国产资源在线一区| 色久综合一二码| 一二三四区精品视频| 欧美精品播放| 精品国产伦一区二区三区观看体验 | 91精品国产免费| 蜜桃视频免费观看一区| 国产精品区免费视频| 国产精品色在线观看| 99久久99精品久久久久久| 欧美日韩日本视频| 美女诱惑一区二区| 一道本成人在线| 亚洲成人午夜影院| 一区二区三区你懂的| 中国av一区二区三区| 99精品久久只有精品| 日韩欧美一二三四区| 国产在线一区观看| 欧美日韩国产乱码电影| 久久精品国产亚洲一区二区三区| 久久精精品视频| 午夜视频在线观看一区二区三区| 一本综合久久| 一区二区在线观看不卡| 亚洲美女一区| 亚洲乱码中文字幕| 国产欧美激情| 亚洲成a人片在线不卡一二三区| 日韩视频不卡| 一区二区高清免费观看影视大全| 在线观看一区| 亚洲一区在线电影| 久久久久久亚洲精品杨幂换脸 | 日韩在线一区二区三区| 久久经典综合| 久久99精品国产麻豆不卡| 欧美精品久久一区二区三区| 国产精品一卡二| 久久久久久久久久看片| 国产精品国产亚洲精品看不卡15| 国产精品久久久久久久第一福利| 伊甸园精品99久久久久久| 亚洲激情自拍视频| 色婷婷精品大视频在线蜜桃视频| 免费高清视频精品| 欧美麻豆精品久久久久久| 激情久久久久久久久久久久久久久久| 在线不卡欧美精品一区二区三区| 国v精品久久久网| 国产精品无人区| 国产久一道中文一区| 精东粉嫩av免费一区二区三区| 日韩一区二区三区在线视频| 91女厕偷拍女厕偷拍高清| 亚洲日本乱码在线观看| 色88888久久久久久影院野外| 国产伦精品一区二区三区免费| 久久久久久久国产精品影院| 亚洲国产日韩在线| 免费人成精品欧美精品| 欧美成人精品3d动漫h| 最新国产乱人伦偷精品免费网站| 日韩电影免费在线| 精品国产亚洲一区二区三区在线观看| 亚洲性图久久| 免费日本视频一区| 国产婷婷色一区二区三区四区 | 亚洲一区二区影院| 制服丝袜成人动漫| 日韩午夜高潮| 国产99一区视频免费 | 成人app在线观看| 亚洲图片欧美一区| 欧美成人三级电影在线| 一区二区三区国产盗摄 | 宅男噜噜噜66一区二区66| 亚洲第一伊人| 国产成人啪免费观看软件| 一区精品在线播放| 欧美一级日韩免费不卡| 国产精品乱码| 91日韩一区二区三区| 天涯成人国产亚洲精品一区av| 精品国产乱码久久久久久久 | 一色屋精品亚洲香蕉网站| 欧美丰满美乳xxx高潮www| 日韩欧美激情一区| 国产欧美日韩综合一区在线播放| 福利一区在线观看| 五月天中文字幕一区二区| 欧美极品另类videosde| 欧美日韩亚洲不卡| 亚洲专区免费| 欧美日本亚洲| 成人的网站免费观看| 美国一区二区三区在线播放| 亚洲色图都市小说| 久久久久久久久久久99999| 欧美在线999| 亚洲一区日韩| 99riav1国产精品视频| 99国产精品久久久| 经典三级在线一区| 日本成人在线电影网| 亚洲乱码精品一二三四区日韩在线| 日韩免费观看2025年上映的电影 | 久久免费午夜影院| 91麻豆精品91久久久久久清纯 | 中文av字幕一区| 久久久久久久久久美女| 91精品免费观看| 欧美日韩国产成人在线91| 久久精品人人| 久久国产手机看片| 亚洲综合欧美| 国产伦精品一区| 99亚洲视频| 亚洲伦理精品| 一区二区三区精品国产| 亚洲精品社区| 亚洲福利免费| 最新亚洲一区| 中文精品一区二区三区| 亚洲精选一区|