王強
摘要:2010年以來,隨著國家經(jīng)濟迅速發(fā)展,我們迎來了大數(shù)據(jù)時代,大量數(shù)據(jù)也實時影響著我們的生活和工作。在此背景下,優(yōu)化數(shù)據(jù)、提升查詢效率顯得尤為重要。該文分析了基于B-樹結(jié)構(gòu)的索引的實施對于數(shù)據(jù)優(yōu)化的影響,旨在找到數(shù)據(jù)優(yōu)化的實施策略。
關(guān)鍵詞:大數(shù)據(jù)技術(shù);索引;B-樹結(jié)構(gòu)
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)14-0004-02
Abstract:Since 2010,we ushered in the era of big data with the rapid development of the national economy, the large amount of data also affects our life and work in real time. Under this background, It is important to optimize data and query efficiency. This paper analyzes the impact of the implementation of the index based on the B- tree structure for data optimization, aiming to find the implementation strategy of data optimization.
Key words: large data technology index B-tree structure
進入大數(shù)據(jù)時代,面對現(xiàn)實世界中的海量數(shù)據(jù),如何更科學有效地獲取、組織、存儲以及處理成為計算機技術(shù)中重要的研究領(lǐng)域,從早期的文件系統(tǒng)到后來的關(guān)系數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)挖掘技術(shù),再到現(xiàn)在的大數(shù)據(jù)處理技術(shù),在數(shù)據(jù)管理技術(shù)上迎來了新的飛躍。
1 大數(shù)據(jù)處理與索引
大數(shù)據(jù)與傳統(tǒng)的數(shù)據(jù)庫在數(shù)據(jù)來源、數(shù)據(jù)規(guī)模、數(shù)據(jù)模式和數(shù)據(jù)思維方式等方面都存在區(qū)別。借用一個形象的比喻,如果說文件系統(tǒng)與關(guān)系數(shù)據(jù)庫對數(shù)據(jù)的處理是 “池塘捕魚”,那么大數(shù)據(jù)時代就是“大海捕魚”。面對海量的數(shù)據(jù),如何優(yōu)化數(shù)據(jù)存儲和提升數(shù)據(jù)處理效率成為研究的重點之一,基于B-樹結(jié)構(gòu)的索引是解決大數(shù)據(jù)背景下數(shù)據(jù)優(yōu)化的有效途徑之一。
索引能實現(xiàn)數(shù)據(jù)快速定位,從而加速數(shù)據(jù)訪問速度,提升數(shù)據(jù)處理效率。對于擁有復(fù)雜結(jié)構(gòu)的大量數(shù)據(jù)所構(gòu)成的基本表而言,索引的作用和意義是非常重要的。它通過存儲排序的索引關(guān)鍵字與表記錄的物理空間位置建立映射關(guān)系,從而實現(xiàn)表記錄的邏輯排序。
2 索引的創(chuàng)建與實施
本實驗中海量數(shù)據(jù)的存放借助的是SQL Server數(shù)據(jù)庫管理系統(tǒng)。SQL Server中索引的建立依賴于數(shù)據(jù)表,數(shù)據(jù)表的存儲內(nèi)容是由數(shù)據(jù)頁面和索引頁面兩部分組成,索引就放在索引頁面上。開始進行數(shù)據(jù)檢索時,首先尋找索引文件,定位位置指針,通過它找到數(shù)據(jù)頁面,然后進行讀取、加載,完成檢索操作。
在數(shù)據(jù)庫系統(tǒng)層面,索引和表中數(shù)據(jù)存放在物理文件中,這些數(shù)據(jù)被分散在page的基本存儲單元中,采用Balanced Tree(以下簡稱B-樹)來組織與管理索引頁和基本表的數(shù)據(jù)頁。
3 B-樹結(jié)構(gòu)與性能分析
4 基于B-結(jié)構(gòu)的優(yōu)化實施
對于海量數(shù)據(jù),首先需要建立多層結(jié)構(gòu)的索引系統(tǒng),即多級索引。之后建立聚集索引,即表中記錄的物理順序與索引關(guān)鍵字的邏輯順序一致。
它自下而上的順序來構(gòu)建自己的B-樹。數(shù)據(jù)頁信息包括若干記條錄,存放在所有的葉子節(jié)點中;為多個數(shù)據(jù)頁建立一個最低級的索引頁,所有數(shù)據(jù)頁的最低級索引頁成為B-樹最下層的中間節(jié)點。再依次不斷為低級索引頁建立高一級的索引頁,直至建立起最高級的索引頁,在B-樹中對應(yīng)根節(jié)點。
再建立非聚集索引,非聚集索引具有與表數(shù)據(jù)完全分離的結(jié)構(gòu),表數(shù)據(jù)與索引分別存儲在不同位置,具有完全不同的順序。相應(yīng)的B-樹所有節(jié)點只保存索引頁,不存放數(shù)據(jù)頁信息。B-樹的葉子節(jié)點存放完全獨立于表記錄物理順序的索引關(guān)鍵字的鍵值,以及指向數(shù)據(jù)存儲位置的指針,并不存放表的數(shù)據(jù)頁,標的數(shù)據(jù)頁存放在其他地方。非聚集索引通過指針來定位包含索引關(guān)鍵字值得物理記錄行,從而建立索引關(guān)鍵字的邏輯順序與實際記錄的物理順序之間的映射關(guān)系。
在實現(xiàn)檢索某個數(shù)據(jù)項的時候,要先找到聚集索引的根節(jié)點,在根節(jié)點的索引頁中,對檢索數(shù)據(jù)項值與頁中的索引關(guān)鍵值進行比較,找出小于或等于待檢索數(shù)據(jù)項值得最大索引關(guān)鍵值,通過相應(yīng)索引記錄的地址指針移動到下一層的索引節(jié)點,直到找到能夠精確匹配的數(shù)據(jù)頁,在數(shù)據(jù)頁上查找檢索數(shù)據(jù)項值,直到找到與數(shù)據(jù)項值對應(yīng)的記錄為止。
5 總結(jié)
雖然基于B-樹結(jié)構(gòu)的索引的創(chuàng)建需要犧牲一定的存儲空間,創(chuàng)建索引和維護索引也要耗費一定的時間,但是面對海量數(shù)據(jù),基于B-樹結(jié)構(gòu)的索引的創(chuàng)建一方面加快了表內(nèi)數(shù)據(jù)檢查的速度,避免了數(shù)據(jù)查詢時將數(shù)據(jù)表文件分塊和全表掃描,改善了系統(tǒng)的性能,另一方面確保了數(shù)據(jù)記錄的唯一性,加快表與表之間的連接速度,更好地實現(xiàn)了表的參照完整性,加快了表間的查詢速度,這一切都優(yōu)化了數(shù)據(jù),提高了速度,從而更好地適應(yīng)大數(shù)據(jù)背景下的數(shù)據(jù)處理。
參考文獻:
[1] Sack J.SQL Server2008實戰(zhàn)[M].金迎春,譯.北京:人民郵電出版社,2010.
[2] 康會光,馬海軍. SQL Server2008中文版標準教程[M].北京:清華大學出版社,2009.
[3] 陶雪嬌,胡曉峰,劉洋. 大數(shù)據(jù)研究綜述[J].系統(tǒng)仿真學報,2013(8)
[4] 夏巖, 趙慧英, 賈軍帥. 數(shù)據(jù)挖掘發(fā)展綜述[J].通信與計算技術(shù),2009(5).