亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺談高職院校數(shù)據(jù)庫原理中索引的研究與講解

        2019-08-26 01:35:26謝曉偉
        關(guān)鍵詞:數(shù)據(jù)庫

        謝曉偉

        摘要:數(shù)據(jù)庫原理是計(jì)算機(jī)院系的一本基礎(chǔ)專業(yè)課,作為高職院校則更加注重于數(shù)據(jù)庫技術(shù)的應(yīng)用,本文作者長期從事高職院校數(shù)據(jù)庫原理的教學(xué)工作,本文重點(diǎn)講解了數(shù)據(jù)庫原理中“索引”的概念及用法,有助于數(shù)據(jù)庫管理及程序開發(fā)的性能調(diào)優(yōu)。

        關(guān)鍵詞:數(shù)據(jù)庫;索引;B-Tree

        中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)05-0072-02

        0 引言

        數(shù)據(jù)庫系統(tǒng)的應(yīng)用給人們的數(shù)據(jù)處理提供了一種高效、便捷的方式,但對(duì)于以億級(jí)數(shù)據(jù)量計(jì)算的大型關(guān)系型數(shù)據(jù)庫,如何有效地應(yīng)用索引就成了提高數(shù)據(jù)庫系統(tǒng)查詢時(shí)效率的關(guān)鍵。

        1 索引的概念

        索引是基于表或視圖的一個(gè)或者多個(gè)列的值,按照一定的排列順序有效組織表數(shù)據(jù)的方式。通俗來講,數(shù)據(jù)庫系統(tǒng)類似于我們生活中常用的字典,而索引就等同于字典的目錄,我們要從一本字典中查找某個(gè)漢字,如果沒有目錄的話,意味著要將字典從頭翻到尾逐字去找,這樣很浪費(fèi)時(shí)間,而有了目錄后,我們可以根據(jù)目錄中該漢字的頁數(shù)再到字典中去找到這個(gè)漢字,這樣會(huì)快很多。

        2 索引的優(yōu)缺點(diǎn)

        索引的優(yōu)點(diǎn)是可以快速進(jìn)行數(shù)據(jù)表的檢索,減少I/O次數(shù),提高數(shù)據(jù)檢索效率,根據(jù)索引分組和排序,可以加快分組和排序操作。

        索引的缺點(diǎn)是,索引會(huì)占用存儲(chǔ)空間,一般來說,索引表占用的空間的數(shù)據(jù)表的1.5倍,而構(gòu)建索引的同時(shí)會(huì)降低數(shù)據(jù)表的修改操作(刪除,添加,修改)的效率,另外索引表的維護(hù)和創(chuàng)建需要時(shí)間成本,這個(gè)成本隨著數(shù)據(jù)量增大而增大。

        3 索引的實(shí)現(xiàn)原理

        不同的數(shù)據(jù)庫系統(tǒng)所采用的索引實(shí)現(xiàn)原理不同,常見的實(shí)現(xiàn)原理有:哈希索引、全文索引、BTree索引和B+Tree索引等。

        3.1 哈希索引

        哈希索引用索引列的值計(jì)算該值的hashCode,然后在hashCode相應(yīng)的位置存執(zhí)該值所在行數(shù)據(jù)的物理位置,因?yàn)槭褂蒙⒘兴惴ǎ虼嗽L問速度非??欤且粋€(gè)值只能對(duì)應(yīng)一個(gè)hashCode,而且是散列的分布方式,因此哈希索引不支持范圍查找和排序的功能。

        3.2 全文索引

        對(duì)于文本的大對(duì)象,或者較大的CHAR類型的數(shù)據(jù),如果使用普通索引,那么匹配文本前幾個(gè)字符還是可行的,但是想要匹配文本中間的幾個(gè)單詞,那么就要使用LIKE %word%來匹配,這樣需要很長的時(shí)間來處理,響應(yīng)時(shí)間會(huì)大大增加,這種情況,應(yīng)該使用全文索引,在生成全文索引時(shí),會(huì)為文本生成一份單詞的清單,在檢索時(shí)根據(jù)這個(gè)單詞的清單來檢索,從而提高了檢索效率。

        3.3 B-Tree索引

        B-Tree是平衡多路查找樹,如圖1所示。

        圖1中,每個(gè)節(jié)點(diǎn)占用一個(gè)盤塊的磁盤空間,其上有兩個(gè)關(guān)鍵字和三個(gè)指針,兩個(gè)關(guān)鍵字是按升序排序的,三個(gè)指針分別指向子樹的根節(jié)點(diǎn),指針存儲(chǔ)的是子節(jié)點(diǎn)所在磁盤塊的地址信息;兩個(gè)關(guān)鍵詞將數(shù)據(jù)范圍劃分成三個(gè)范圍域,對(duì)應(yīng)三個(gè)指針指向的子樹的數(shù)據(jù)的范圍域。

        根據(jù)B-Tree索引的尋找模式,我們模擬一下尋找關(guān)鍵字29的過程:首先會(huì)把磁盤塊1由磁盤加載到內(nèi)存,此時(shí)發(fā)生一次I/O開銷,在內(nèi)存中用二分查找確定29在17和35之間,鎖定磁盤塊1的P2指針,再通過磁盤塊1的P2指針?biāo)赶虻拇疟P地址把磁盤塊3由磁盤加載到內(nèi)存,發(fā)生第二次I/O開銷,29在26和30之間,鎖定磁盤塊3的P2指針,通過指針?biāo)赶虻拇疟P地址加載磁盤塊8到內(nèi)存,發(fā)生第三次I/O開銷,同時(shí)內(nèi)存中做二分查找找到29,結(jié)束查詢,總計(jì)三次I/O開銷。在實(shí)際應(yīng)用過程中,3層的B-Tree可以表示上百萬的數(shù)據(jù),如果上百萬的數(shù)據(jù)查找只需要三次I/O開銷,性能提高將是巨大的,如果沒有索引,每個(gè)數(shù)據(jù)項(xiàng)都要發(fā)生一次I/O開銷,那么總共需要百萬次的開銷,顯然時(shí)間成本非常非常高。

        3.4 B+Tree索引

        B+Tree是在B-Tree基礎(chǔ)上的一種優(yōu)化,所有關(guān)鍵字都是按照鍵值的大小順序存放在同一層的葉子節(jié)點(diǎn)上,不是葉子節(jié)點(diǎn)上只存儲(chǔ)關(guān)鍵字值信息,這樣可以加大每個(gè)節(jié)點(diǎn)存儲(chǔ)的關(guān)鍵字值的數(shù)量,降低了B+Tree的高度,使其更適合實(shí)現(xiàn)外存儲(chǔ)索引結(jié)構(gòu),如圖2。

        4 創(chuàng)建索引

        以SQL Server數(shù)據(jù)庫系統(tǒng)為例:

        CREATE [UNIQUE][CLUSTERED][NONCLUSTERED] INDEX index_name

        ON{table|view}(column [ASC|DESC] [,…n])

        [WITH [,…n]]

        [ON filegroup]

        ::=

        {PAD_INDEX |

        FILLFACTOR = fillfactor |

        IGNORE_DUP_KEY |

        DROP_EXISTING |

        STATISTICS_NORECOMPUTE|

        SORT_IN_TEMPDB

        }

        參數(shù)及說明:

        [UNIQUE][CLUSTERED][NONCLUSTERED]指定創(chuàng)建索引的類型,參數(shù)依次為唯一索引、聚集索引和非聚集索引。

        index_name 索引名,在表或視圖中必須唯一,但在數(shù)據(jù)庫中不必唯一。

        table 包含要?jiǎng)?chuàng)建索引的列的表。

        column 應(yīng)用索引的列,可以是單個(gè),可以是多個(gè)。

        [ASC|DESC] 確定具體某個(gè)索引列的排序方向,默認(rèn)是ASC。

        PAD_INDEX 指定索引中間級(jí)中每個(gè)頁(節(jié)點(diǎn))上保持開放的空間。

        DROP_EXISTING 指定應(yīng)刪除并重建已命名的先前已存在的索引。

        SORT_IN_TEMPDB 指定用于生成索引的中間排序結(jié)果將存儲(chǔ)在tempdb數(shù)據(jù)庫中。

        ON filegroup 在給定的文件組上創(chuàng)建指定的索引。該文件組必須已經(jīng)創(chuàng)建。

        5 結(jié)語

        索引作為數(shù)據(jù)庫原理的一個(gè)重要知識(shí)點(diǎn),對(duì)于數(shù)據(jù)庫的管理和程序開發(fā)都具有十分重要的意義,掌握了數(shù)據(jù)庫索引實(shí)現(xiàn)的基本原理,才能根據(jù)不同的情況創(chuàng)建合理的數(shù)據(jù)庫索引,從而更好地實(shí)現(xiàn)數(shù)據(jù)庫系統(tǒng)的應(yīng)用。

        參考文獻(xiàn)

        [1] 李素奇.關(guān)于SQL索引建立規(guī)則與優(yōu)化的探討[J].科技展望,2014(19):214-215.

        [2] 趙光亮,舒小松.Navicatfor MySQL平臺(tái)中的SQL語言分析與應(yīng)用[J].無線互聯(lián)科技,2017(19):254-256.

        [3] 鄭阿奇.MySQL教程[M].北京:清華大學(xué)出版社,2017:90.

        [4] 明日科技.SQL Server從入門到精通[M].第2版.北京:清華大學(xué)出版社,2017:256-281.

        [5] 周慧,施樂軍,崔玉禮.SQL Server2012數(shù)據(jù)庫技術(shù)及應(yīng)用[M].第4版.北京:人民郵電出版社,2017:133-136.

        [6] 王利.SQL SERVER數(shù)據(jù)庫性能調(diào)整與優(yōu)化[D].電子科技大學(xué),2007.

        猜你喜歡
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        在线观看精品国产福利片100| 亚洲人成在线播放网站| 亚洲视频在线观看| 国产成人综合久久精品免费| 久久精品中文字幕久久| 一区二区激情偷拍老牛视频av| 亚洲精品高清av在线播放| 久久熟女精品—区二区蜜臀| 中文字幕日韩有码在线| 无码少妇一区二区性色av| 黄色毛片视频免费| 亚洲国产精品二区三区| 91精品人妻一区二区三区水蜜桃| 92午夜少妇极品福利无码电影| 人与禽交av在线播放| 亚洲av日韩片在线观看| 亚洲中文乱码在线视频| 亚洲高清三区二区一区| 成人网站免费看黄a站视频 | 狠狠色丁香久久婷婷综合蜜芽五月| 亚洲视频高清| 精品黄色国产一区二区| 亚洲国产色一区二区三区 | 9999毛片免费看| 日韩一区二区三区天堂| 黄色av一区二区在线观看| 亚洲av日韩aⅴ无码色老头| 伊伊人成亚洲综合人网7777| 国产熟女精品一区二区三区| 一区二区三区在线乱码| 在教室伦流澡到高潮hgl动漫| 久久国产精久久精产国| 无码精品一区二区三区免费16| 在线观看一区二区中文字幕| 一进一出一爽又粗又大| 无码国产精品一区二区免费97| 韩国三级大全久久网站| 亚洲中文字幕日韩综合| 日本免费a级毛一片| 欧美日韩中文字幕久久伊人| 国产精品国产三级国产an不卡|