?

分布式數據庫系統的優化研究

2018-10-10 00:55石永超任利峰
吉林農業科技學院學報 2018年3期
關鍵詞:分片子圖數據庫系統

石永超,任利峰

1 分布式數據庫系統的定義

分布式數據庫系統有兩種,一種是一個邏輯上完整而物理上分散的多個數據庫的集群,通過網絡將多臺數據庫進行連接,依靠專業的數據庫管理軟件進行管理的分布式系統。這種系統只適用于一個用途比較單一的,不太大的單位或部門;另一種是在物理上和邏輯上都是分布的,這種系統可容納多個不同用途、差異較大的數據庫,適宜較大的數據庫系統的集成。物理上分布指的是各個數據庫可以單獨存在于不同的地理位置,通過網絡將各個數據庫連接起來; 邏輯上完整指的是各個數據庫通過網絡連接起來后,可以調整配置,使用統一的數據庫管理軟件進行整體的操縱,同時各個單獨的數據庫也具有自制能力。

2 分布式數據庫查詢優化技術的現狀

分布式數據庫查詢優化通??梢詮膬蓚€方面考慮: 一個是減少響應時間,另一個是減少網絡數據的傳輸量。從傳統的分布式數據庫系統來看,計算機內部處理數據的速度和網絡傳輸的速度有和很大的懸殊。但是大量的數據傳輸會使網絡承受的壓力太大,這個就是目前分布式數據庫查詢優化所要面臨的主要問題,所以分布式數據庫查詢優化目標的一個方面就是減少網絡數據的傳遞量。 另一方面,數據庫之間的數據傳輸的速度是不一樣的,單獨的一個數據庫內部查詢數據的速度也是不一樣。同時,單個數據庫查詢的時間也不是確定的,這就會影響整體的查詢效率。在這種情況下,不應該將數據的傳輸數量作為查詢數據質量的標準,應該更多的去研究每一條請求的響應時間。 在一些特殊情況下,我們也得同時考慮響應時間和傳輸速度。 這就需要設計的算法去權衡這兩點。 雖然分布式數據庫技術如此復雜,算法設計需要考慮的因素很多,但是并沒有能停止人們對他探索的腳步, 也正是因為他的復雜性和多樣性才使這種技術不斷地被修改創新,這種靈活性也決定它會被廣泛應用?;诜植际郊軜嬎哂械膬烖c和可靠性、靈活性、可用性,吸引著越來也多的人對它進行不斷的探索,使之成為如此熱門的技術。 許多研究所、大學的專家學者經過不懈努力,使這種技術越來越成熟。

3 分布式數據庫查詢優化的技術方案

研究數據庫系統的一個方面就是要向用戶盡可能多的封裝數據庫的操作,使數據庫系統更具有通用性[1]。另一方面,分布式數據庫系統還得向用戶隱藏系統內部的一些細節,使得系統用起來更加安全,方便。關系型數據庫可以為用戶集中的提供一個數據接口,所有的數據都通過這個接口傳送。使用SQL語句進行數據查詢時,只需簡單的描述所要查詢的數據,無需知道系統內部如何獲得數據的。當用戶發來請求時,分布式系統會先檢查訪問的數據庫是否存在于本地,如果存在則運行命令;如果沒有存在,將請求廣播給其他數據庫,根據查詢信息選擇一個最優的查詢節點(單獨的數據庫)進行查詢,即選擇一個有查詢信息所需的數據的數據庫進行查詢,并且保證查詢所需資源最少。然后將查詢命令按地址發送到該數據庫上,返回該數據庫的IP地址,客戶端接受到返回信息,馬上與該數據庫建立連接。當數據庫內部查詢結束后,將查詢的信息發回客戶端。如圖1所示。但是通過這種方式進行信息的更改與查詢時,需要使用SQL語句,所以更好的查詢算法也正在發展和討論。我們所說的查詢優化,就是要保證在查詢結果準確的前提下,最大程度的減少網絡數據傳遞量,最快的查詢出結果。

圖1 分布式數據庫系統數據查詢

4 分布式查詢優化算法的研究

分布式查詢就是將一個分布式數據庫上的整體查詢轉換成可以被單個數據庫節點識別的查詢。轉換之后要使得整體的數據庫系統和單獨的數據庫都可以識別,并通過代數運算優化這個過程[2]。全局查詢優化是通過優化算法來操作數據庫間的數據移動順序從而形成的一個優化方案, 主要是決策選擇操作的順序。選擇連接順序是分布式數據庫優化的一個重要的問題,但是由于數據冗余的特點,傳統的查詢會關聯到多個節點,十分浪費資源。在傳統數據庫的發展過程中,雖然已經不斷優化這個問題,但是還沒得到很好的解決。 對于多表查詢這個問題,必須很好地考慮如何搜索,才能知道近似最優解。

4.1 粒子群優化算法(pso)

粒子群優化算法是一種全局隨機優化算法。 與一般算法不同的是,粒子群優化算法是將一個個數據庫抽象為粒子,從而進行整體的排列,而不是傳統的單點的操作。 “學習”和“記憶”是粒子自身所具有的能力,基于這個特性,可以通過粒子間的學習幫助,使整個粒子群不斷搜索最優的區域,從而找到最優解。 通過這種手段,可以使數據庫找到最優算法或者近似最優的算法,從以往的研究來看,粒子群優化算法能很好地解決一些問題。

4.2 分片復制優化算法

一個良好的分布式數據庫系統的設計,一般包括一些關聯: 整個分布式系統可以被分成多少個分片; 這些分片里有多少分片的副本; 如何確定這些分片在哪個站點。 這些問題使數據庫設計變得復雜,甚至還要分析每一個單獨的站點,這也是一個問題。 為了簡化以上的問題,我們找到一個接近最優解的算法,分片復制算法。 此算法的核心思想是: 先將參加查詢的關系進行分片化,然后在分布式系統中選擇一組站點,將分片放到這個站點上,每個單獨的站點都可以與其他站點進行連接,最后再將查詢的結果做并集,即得到最優解。

4.3 Partition 算法

在處理多表關系連接的問題時, Partition算法可以抽取兩個或者多個關系共有的屬性,然后進行片段的劃分,這樣處理后可以進行并集運算,從而提高查詢效率?;诜植际綌祿煜到y獨有的特征,這種查詢方式可以在多個數據庫同時操作,從而提高數據查詢的速度[3]。 但是對于大量數據的處理以及對要求復雜的查詢任務來說,這種查詢方式還不是最好的。因此,在下面我們將結合查詢圖劃分改進原有的Partition算法。在傳統的Partition算法中,人們通常只用到其中一種的劃分方案,僅對一種方案進行研究,而忽略其他的劃分方案。就此問題,我們通過查詢圖劃分的思想,將一個完整的查詢圖劃分成多個子圖,這樣再通過 Partition算法將這些子圖連接起來,就可以大大解決數據冗余的問題。為了方便,我們為改進的算法進行了一個構思: 每一個查詢子圖對應分布式系統的一個站點,那么改進的算法就有一下幾步:

劃分查詢圖:借助查詢圖劃分的思想,對整體進行劃分,得到多個子圖。

Partition算法操作:每一個子圖都進行Partition算法運算,再將每個子圖上所有節點的結果進行并集運算,就可得到結果。但經過Partition算法運算后,每個子圖的節點數不會有任何變化。

循環:循環執行(1)(2)步的操作,直到將所有的子圖合并為一個圖,在將此圖上所有結果取并集就可得到查詢結果。

5 總 結

通過以上對分布式數據庫系統的優化,我們解決了一部分分布式系統查詢的問題??梢愿鶕煌男枨?,選擇不同的方案進行處理,從而提高數據的檢索速度,滿足當今對數據查詢效率的需求,提升用戶體驗。

猜你喜歡
分片子圖數據庫系統
上下分片與詞的時空佈局
降低跨分片交易回滾概率的多輪驗證方案
關于2樹子圖的一些性質
臨界完全圖Ramsey數
不含3K1和K1+C4為導出子圖的圖色數上界?
Oracle數據庫系統的性能優化研究
基于模糊二分查找的幀分片算法設計與實現
微細銑削工藝數據庫系統設計與開發
江蘇省ETC數據庫系統改造升級方案探討
通用導彈雷達罩曲面分片展開系統的開發
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合