一種資料庫查詢方法及裝置

一種資料庫查詢方法及裝置

《一種資料庫查詢方法及裝置》是廣州市誠毅科技軟體開發有限公司於2016年11月28日申請的專利,該專利的公布號為CN106776848A,授權公布日為2017年5月31日,發明人是邵山、曾恩超、徐勇剛。該發明涉及數據處理技術領域。

《一種資料庫查詢方法及裝置》用於解決2016年11月之前的資料庫查詢方式在關係型資料庫單表數據在超過千萬記錄數以後,受系統IO吞吐量的限制及資料庫表間的原有關聯和排序關係影響,處理查詢指令的硬體間通常會產生大量繁雜的讀寫操作,使得硬體間利用率相差過大,導致硬體間平衡性較低,大大影響了資料庫的整體查詢速度的技術問題。該發明實施例的資料庫查詢方法包括:接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令;根據並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果,所述預置分區視圖通過資料庫數據並結合目標索引欄位建立。

2021年11月,《一種資料庫查詢方法及裝置》獲得第八屆廣東專利獎優秀獎。

(概述圖為《一種資料庫查詢方法及裝置》摘要附圖)

基本介紹

  • 中文名:一種資料庫查詢方法及裝置
  • 申請人:廣州市誠毅科技軟體開發有限公司
  • 申請日:2016年11月28日
  • 申請號:201611066037X
  • 公布日:2017年5月31日
  • 公布號:CN106776848A
  • 發明人:邵山、曾恩超、徐勇剛
  • 地址:廣東省廣州市廣州大道南368號26樓
  • 分類號:G06F17/30(2006.01)I
  • 代理機構:北京集佳智慧財產權代理有限公司
  • 代理人:張春水、唐京橋
  • 類別:發明專利
專利背景,發明內容,專利目的,技術方案,改善效果,附圖說明,權利要求,實施方式,榮譽表彰,

專利背景

傳統的關係型資料庫往往基於結構化查詢語言(Structured Query Language,以下簡稱:SQL)語句來實現。每次查詢時,業務系統可以將SQL語句和查詢參數傳遞到資料庫伺服器,例如可以通過調用部署在該業務系統上的資料庫客戶端來傳送該SQL語句和查詢參數。資料庫伺服器解析SQL語句,使用CPU磁碟中載入數據進行查詢處理,在記憶體中進行比對等一系列操作,然後向業務系統返回查詢結果,並同時返回查詢結果的元數據信息。數據查詢時間往往取決於處理查詢業務的各硬體間協調、連貫地處理查詢業務時間的總和。
zhua曲子白渡白顆
但是,2016年11月之前的資料庫查詢方式在關係型資料庫單表數據在超過千萬記錄數以後,受系統IO吞吐量(即單位時間內讀寫數據的數量)的限制及資料庫表間的原有關聯和排序關係影響,處理查詢指令的硬體間通常會產生大量繁雜的讀寫操作,使得硬體間利用率相差過大,導致硬體間平衡性較低,大大影響了資料庫的整體查詢速度。

發明內容

專利目的

該發明實施例提供的一種資料庫查詢方法及裝置,解決了2016年11月之前的資料庫查詢方式在關係型資料庫單表數據在超過千萬記錄數以後,受系統IO吞吐量的限制及資料庫表間的原有關聯和排序關係影響,處理查詢指令的硬體間通常會產生大量繁雜的讀寫操作,使得硬體間利用率相差過大,導致硬體間平衡性較低,大大影響了資料庫的整體查詢速度的技術問題。

技術方案

《一種資料庫查詢方法及裝置》實施例提供的一種資料庫查詢方法,包括:接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令;根據並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果,預置分區視圖通過資料庫數據並結合目標索引欄位建立。
可選地,接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令之前還包括:獲取到對資料庫數據進行以主鍵為目標索引欄位的第一分區視圖的建立,或對資料庫數據進行至少兩個目標索引欄位的組合第二分區視圖的建立的分區視圖指令;根據分區視圖指令進行預置分區視圖配置。
可選地,根據並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果具體包括:根據並行業務查詢命令,並結合對應的預置分區視圖產生的對應子進程進行對應資料庫的訪問及查詢;獲取到通過每個子進程查詢的結果所返回的查詢總數;根據並行業務查詢命令的查詢條件和查詢總數進行數據合併處理,並對合併後的數據與預置分區視圖進行匹配,返回匹配結果。
可選地,根據並行業務查詢命令的查詢條件和查詢總數進行數據合併處理,並對合併後的數據與預置分區視圖進行匹配,返回匹配結果之後還包括:根據匹配結果,對匹配到的數據進行對應的具體分區視圖的計算,並在對應的具體分區視圖中進行查詢,返回查詢結果。可選地,資料庫查詢方法還包括:獲取到根據系統硬體負載信息進行的預置分區視圖調整的分區視圖調整指令,並根據分區視圖調整指令進行預置分區視圖的實時配置處理。
該發明實施例提供的一種資料庫查詢裝置,包括:接收單元,用於接收由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令;查詢返回單元,用於根據並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果,所述預置分區視圖通過資料庫數據並結合目標索引欄位建立。
可選地,資料庫查詢裝置還包括:第一獲取單元,用於獲取到對資料庫數據進行以主鍵為目標索引欄位的第一分區視圖的建立的分區視圖指令;第二獲取單元,用於獲取到對資料庫數據進行至少兩個目標索引欄位的組合第二分區視圖的建立的分區視圖指令;配置單元,用於根據分區視圖指令進行預置分區視圖配置。
可選地,查詢返回單元包括:第一查詢子單元,用於根據並行業務查詢命令,並結合對應的預置分區視圖產生的對應子進程進行對應資料庫的訪問及查詢;第一獲取子單元,用於獲取通過每個子進程查詢的結果所返回的查詢總數;合併返回子單元,用於根據並行業務查詢命令的查詢條件和查詢總數進行數據合併處理,並對合併後的數據與預置分區視圖進行匹配,返回匹配結果。
可選地,查詢返回單元還包括:第二查詢子單元,用於根據匹配結果,對匹配到的數據進行對應的具體分區視圖的計算,並在對應的具體分區視圖中進行查詢,返回查詢結果。可選地,資料庫查詢裝置還包括:調整單元,用於獲取到根據系統硬體負載信息進行的預置分區視圖調整的分區視圖調整指令,並根據分區視圖調整指令進行預置分區視圖的實時配置處理。

改善效果

《一種資料庫查詢方法及裝置》其中,資料庫查詢方法包括:接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令;根據並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果,預置分區視圖通過資料庫數據並結合目標索引欄位建立。該實施例中,通過首先接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令,確定了當資料庫查詢方式在關係型資料庫單表數據在超過千萬記錄數以後直接進入與第一接口連線的存在有預置分區視圖的另一硬體設備,因為超過千萬記錄數與並行業務查詢命令相對應,然後根據並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果,實現了在另一硬體設備單獨並行處理大量數據,且預置分區視圖通過資料庫數據並結合目標索引欄位建立,使得處理的過程更加快速高效,解決了2016年11月之前的資料庫查詢方式在關係型資料庫單表數據在超過千萬記錄數以後,受系統IO吞吐量的限制及資料庫表間的原有關聯和排序關係影響,處理查詢指令的硬體間通常會產生大量繁雜的讀寫操作,使得硬體間利用率相差過大,導致硬體間平衡性較低,大大影響了資料庫的整體查詢速度的技術問題。

附圖說明

圖1為該發明實施例提供的一種資料庫查詢方法的一個實施例的流程示意圖;
圖2為該發明實施例提供的一種資料庫查詢方法的另一個實施例的流程示意圖;
圖3為該發明實施例提供的一種資料庫查詢裝置的一個實施例的結構示意圖;
圖4為該發明實施例提供的一種資料庫查詢裝置的另一個實施例的結構示意圖。

權利要求

1.一種資料庫查詢方法,其特徵在於,包括:接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令;根據所述並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過所述子進程返回查詢結果,所述預置分區視圖通過資料庫數據並結合目標索引欄位建立。
2.根據權利要求1所述的資料庫查詢方法,所述接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令之前還包括:獲取到對所述資料庫數據進行以主鍵為所述目標索引欄位的第一分區視圖的建立,或對所述資料庫數據進行至少兩個所述目標索引欄位的組合第二分區視圖的建立的所述分區視圖指令;根據所述分區視圖指令進行所述預置分區視圖配置。
3.根據權利要求1所述的資料庫查詢方法,所述根據所述並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過所述子進程返回查詢結果具體包括:根據所述並行業務查詢命令,並結合對應的預置分區視圖產生的對應子進程進行對應資料庫的訪問及查詢;獲取到通過每個所述子進程查詢的結果所返回的查詢總數;根據所述並行業務查詢命令的查詢條件和所述查詢總數進行數據合併處理,並對合併後的所述數據與所述預置分區視圖進行匹配,返回匹配結果。
4.根據權利要求3所述的資料庫查詢方法,所述根據所述並行業務查詢命令的查詢條件和所述查詢總數進行數據合併處理,並對合併後的所述數據與所述預置分區視圖進行匹配,返回匹配結果之後還包括:根據所述匹配結果,對匹配到的所述數據進行對應的具體分區視圖的計算,並在對應的所述具體分區視圖中進行查詢,返回查詢結果。
5.根據權利要求1至4中任意一項所述的資料庫查詢方法,所述的資料庫查詢方法還包括:獲取到根據系統硬體負載信息進行的所述預置分區視圖調整的分區視圖調整指令,並根據所述分區視圖調整指令進行所述預置分區視圖的實時配置處理。
6.一種資料庫查詢裝置,其特徵在於,包括:接收單元,用於接收由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令;查詢返回單元,用於根據所述並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過所述子進程返回查詢結果;所述預置分區視圖通過資料庫數據並結合目標索引欄位建立。
7.根據權利要求6所述的資料庫查詢裝置,其特徵在於,所述資料庫查詢裝置還包括:第一獲取單元,用於獲取到對所述資料庫數據進行以主鍵為所述目標索引欄位的第一分區視圖的建立的所述分區視圖指令;第二獲取單元,用於獲取到對所述資料庫數據進行至少兩個所述目標索引欄位的組合第二分區視圖的建立的所述分區視圖指令;配置單元,用於根據所述分區視圖指令進行所述預置分區視圖配置。
8.根據權利要求6所述的資料庫查詢裝置,其特徵在於,所述查詢返回單元包括:第一查詢子單元,用於根據所述並行業務查詢命令,並結合對應的預置分區視圖產生的對應子進程進行對應資料庫的訪問及查詢;第一獲取子單元,用於獲取通過每個所述子進程查詢的結果所返回的查詢總數;合併返回子單元,用於根據所述並行業務查詢命令的查詢條件和所述查詢總數進行數據合併處理,並對合併後的所述數據與所述預置分區視圖進行匹配,返回匹配結果。
9.根據權利要求8所述的資料庫查詢裝置,其特徵在於,所述資料庫查詢裝置還包括:第二查詢子單元,用於根據所述匹配結果,對匹配到的所述數據進行對應的具體分區視圖的計算,並在對應的所述具體分區視圖中進行查詢,返回查詢結果。
10.根據權利要求6至9中任意一項所述的資料庫查詢裝置,其特徵在於,所述資料庫查詢裝置還包括:調整單元,用於獲取到根據系統硬體負載信息進行的所述預置分區視圖調整的分區視圖調整指令,並根據所述分區視圖調整指令進行所述預置分區視圖的實時配置處理。

實施方式

參閱圖1,《一種資料庫查詢方法及裝置》實施例提供的一種資料庫查詢方法,包括:101、接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令;該實施例中,當需要進行資料庫查詢時,首先需要將單表數據量超過千萬紀錄數的大表通過第一接口與資料庫查詢裝置連線,資料庫查詢裝置另一接口與套用伺服器連線。其中,套用伺服器接收用戶的訪問。在套用伺服器根據用戶的查詢指令按其自身業務的定義和配置確定使用並行服務的業務時,套用伺服器通過內部的socket協定(網路傳輸協定),通過json格式(網際網路通用數據格式,可以支持數組、不同數據類型的格式)將請求條件和查詢語句內容提交給資料庫查詢裝置,由資料庫查詢裝置訪問資料庫,並等待資料庫查詢裝置通過json格式返回的查詢結果。
在套用伺服器根據用戶的查詢指令進行處理後,資料庫查詢裝置接收到由套用伺服器根據用戶的查詢指令按其自身業務的定義和配置通過第一接口發出的並行業務查詢命令。
102、根據並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果,預置分區視圖通過資料庫數據並結合目標索引欄位建立。在接收到由套用伺服器根據用戶的查詢指令按其自身業務的定義和配置通過第一接口發出的並行業務查詢命令後,根據並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果。其中,預置分區視圖通過資料庫數據並結合目標索引欄位建立。
該實施例中,通過首先接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令,確定了當資料庫查詢方式在關係型資料庫單表數據在超過千萬記錄數以後直接進入與第一接口連線的存在有預置分區視圖的另一硬體設備,因為超過千萬記錄數與並行業務查詢命令相對應,然後根據並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果,實現了在另一硬體設備單獨並行處理大量數據,且預置分區視圖通過資料庫數據並結合目標索引欄位建立,使得處理的過程更加快速高效,解決了2016年11月之前的資料庫查詢方式在關係型資料庫單表數據在超過千萬記錄數以後,受系統IO吞吐量的限制及資料庫表間的原有關聯和排序關係影響,處理查詢指令的硬體間通常會產生大量繁雜的讀寫操作,使得硬體間利用率相差過大,導致硬體間平衡性較低,大大影響了資料庫的整體查詢速度的技術問題。
以上為對該發明實施例提供的一種資料庫查詢方法進行的詳細的描述,以下將對該發明實施例提供的一種資料庫查詢方法的過程進行詳細的描述。參閱圖2,該發明實施例提供的一種資料庫查詢方法的另一個實施例包括:
201、獲取到對資料庫數據進行以主鍵為目標索引欄位的第一分區視圖的建立,或對資料庫數據進行至少兩個目標索引欄位的組合第二分區視圖的建立的分區視圖指令;該實施例中,當需要進行資料庫查詢時,首先需要在啟用查詢服務前,資料庫查詢裝置接收根據所需查詢的大表的數據分布情況結合自身查詢信息而發出的根據目標索引欄位對資料庫數據進行預置分區視圖建立的分區視圖指令。
需要說明的是,在接收分區視圖指令後,可將大表的數據以主鍵為目標索引欄位進行第一分區視圖建立,比如根據主鍵從1-20,21-40,41-60這樣的方式分為多個分區,對每個分區建立一個獨立的視圖。比如根據業務的數據進行分表,比如1月份一個表,2月份一個表,3月份一個表等。
或者,進行對資料庫數據進行至少兩個目標索引欄位的組合的第二分區視圖的建立。比如使用組合條件(如:性別+區域+客戶類型):男的+集團客戶+海珠區作為一個區域,女的+普通客戶+海珠區作為一個區域,每個區域對應一個視圖。
202、根據分區視圖指令進行預置分區視圖配置;在接收分區視圖指令後,即將大表的數據根據目標索引欄位進行分區視圖建立,進行預置分區視圖配置及對分區數據的分布,形成不一定規律但滿足系統高效運行的數據視圖。其中,該預置分區視圖配置與步驟201中根據所需查詢的大表的信息分布情況結合自身查詢信息而發出的根據目標索引欄位對資料庫數據進行預置分區視圖建立的分區視圖指令相對應。
203、接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令;在用戶對套用伺服器輸入查詢命令後,資料庫查詢裝置接收到由套用伺服器根據用戶的查詢指令按其自身業務的定義和配置通過第一接口發出的並行業務查詢命令。
204、根據並行業務查詢命令,並結合對應的預置分區視圖產生的對應子進程進行對應資料庫的訪問及查詢;在接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令後,資料庫查詢裝置通過訪問預置分區視圖配置,分別根據每個視圖產生對應的子進程進行查詢,對應的子進程可以是訪問災備庫或者訪問生產庫。其中,預置分區視圖通過資料庫數據並結合目標索引欄位建立,該預置分區視圖通過資料庫數據並結合目標索引欄位建立可以是與步驟201的過程一致,此處具體不做贅述。
205、獲取到通過每個子進程查詢的結果所返回的查詢總數;在結合對應的預置分區視圖產生的對應子進程進行對應資料庫的訪問及查詢後,並行查詢服務等待每個子進程的查詢結果,獲取到每個子進程返回查詢總數。
206、根據並行業務查詢命令的查詢條件和查詢總數進行數據合併處理,並對合併後的數據與預置分區視圖進行匹配,返回匹配結果;當獲取到通過每個子進程查詢的結果所返回的查詢總數之後,需要根據並行業務查詢命令的查詢條件和每個子進程返回的查詢總數進行數據合併處理,並進行對合併後的數據與每個預置分區視圖的匹配,返回匹配結果。
207、根據匹配結果,對匹配到的數據進行對應的具體分區視圖的計算,並在對應的具體分區視圖中進行查詢,返回查詢結果;當返回匹配結果之後,需要根據合併後的數據與每個預置分區視圖匹配到的結果,通過分頁請求,對匹配到的數據進行對應的具體分區視圖的計算,可得到數據所在的具體分區視圖,並在對應的視圖上進行查詢結果,最後返回查詢結果到套用伺服器給用戶。
208、獲取到根據系統硬體負載信息進行的預置分區視圖調整的分區視圖調整指令,並根據分區視圖調整指令進行預置分區視圖的實時配置處理。該實施例中,在步驟203之後,可以是獲取到根據系統硬體負載信息進行的預置分區視圖調整的分區視圖調整指令,並根據分區視圖調整指令進行預置分區視圖的實時配置處理,需要說明的是該預置分區視圖的實時配置處理是對下一次查詢服務的預置分區視圖進行配置,使得下一次查詢服務基於新配置後的預置分區視圖進行查詢操作,此時的查詢操作可以是重複步驟204至207。
在查詢步驟204至步驟207執行過程中,根據系統的硬體負載信息,該系統硬體負載信息為cpu、記憶體、磁碟的使用情況的結合,通過執行根據系統硬體負載信息進行的預置分區視圖調整的分區視圖調整指令可實時進行對應的分區數據分布調整,形成不一定規律但滿足系統高效運行的數據視圖,並按照調整後的分區視圖由步驟204開始繼續進行下一次查詢服務。該分區視圖指令可為系統根據當前大表中數據主鍵值、索引值分布、數據量等維度進行自動生成的數據分區視圖指令,也可為人工結合當前系統的負載情況及資料庫實時數據量情況進行的最最佳化的自定義分區視圖指令。比如系統的地址數據按照每個地市分區時,廣州、佛山的量大,門市的使用量為市中心偏大,其他區域偏小,此時可根據業務使用情況,將並行查詢的分區視圖進行調整,市區的中心區這部分的地址數據都通過多個視圖來支持並發,這種調整隻需要調整分區配置視圖即可,不需要影響數據存儲,也不影響業務修改,也不用進行硬體擴容部署,此處具體不作限定。
以下將對實際套用場景進行舉例說明,如以下場景:在發現系統運行速度變慢時,進行檢查得到的結果為:CPU使用率較低,系統IO吞吐量極大,而數據表內容使用率不高。檢查發現由於兩個大表(如客戶表及地址表)之間的關聯和排序不當,使得硬體間產生了大量的邏輯讀操作及臨時表空間的數據寫操作,導致整體的查詢速度大大降低。然而,由於該兩大表均為千萬數據量的表,包含最核心的客戶、地址兩個大表,在讀取地址信息和客戶資料的操作上,業務上已經很難再最佳化。
為了提高效率,減少記憶體合併的數據量,儘量避免查詢時記憶體不夠,而進行大量讀寫臨時表空間的操作,導致查詢時間增加,在不改變業務需求的情況下,可使用分區配置最佳化的方式對客戶表和地址表進行分區關聯。比如,將千萬數據量的一個大表切換為50個視圖,每個視圖只有20萬數據,此時根據條件做二次約束後,產生的結果集已經很小,不需要對臨時表空間進行額外的讀寫操作,減少了系統IO的使用,同時通過50個視圖將資料庫查詢裝置的CPU和記憶體都增加50倍的瞬間使用量。如此一來,系統更加穩定高效。
在數據分區視圖定義時,結合了系統業務特性,對許多不規範的地址和客戶資料進行了條件限制,也減少了許多用不到的原始數據的過濾操作,使得結果集關聯消耗降低。此方案結合了業務使用場景分析、系統系統IO、CPU、記憶體使用情況進行了針對性的個性化配置,以達到最優的查詢效率。
該實施例中,通過首先接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令,確定了當資料庫查詢方式在關係型資料庫單表數據在超過千萬記錄數以後直接進入與第一接口連線的存在有預置分區視圖的另一硬體設備,因為超過千萬記錄數與並行業務查詢命令相對應,然後根據並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果,實現了在另一硬體設備單獨並行處理大量數據,且預置分區視圖通過資料庫數據並結合目標索引欄位建立,使得處理的過程更加快速高效,解決了2016年11月之前的資料庫查詢方式在關係型資料庫單表數據在超過千萬記錄數以後,受系統IO吞吐量的限制及資料庫表間的原有關聯和排序關係影響,處理查詢指令的硬體間通常會產生大量繁雜的讀寫操作,使得硬體間利用率相差過大,導致硬體間平衡性較低,大大影響了資料庫的整體查詢速度的技術問題,以及獲取到根據系統硬體負載信息進行的所述預置分區視圖調整的分區視圖調整指令,並根據所述分區視圖調整指令進行所述預置分區視圖的實時配置處理的過程,進一步提高了資料庫查詢的智慧型性和高效性。
以上為對該發明實施例提供的一種資料庫查詢方法的過程進行的詳細的描述,以下將對該發明實施例提供的一種資料庫查詢裝置進行詳細的描述,參閱圖3,該發明實施例提供的一種資料庫查詢裝置的一個實施例包括:接收單元301,用於接收由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令;查詢返回單元302,用於根據並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果,預置分區視圖通過資料庫數據並結合目標索引欄位建立。
該實施例中,通過接收單元301首先接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令,確定了當資料庫查詢方式在關係型資料庫單表數據在超過千萬記錄數以後直接進入與第一接口連線的存在有預置分區視圖的另一硬體設備,因為超過千萬記錄數與並行業務查詢命令相對應,然後查詢返回單元302根據並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果,實現了在另一硬體設備單獨並行處理大量數據,且預置分區視圖通過資料庫數據並結合目標索引欄位建立,使得處理的過程更加快速高效,解決了2016年11月之前的資料庫查詢方式在關係型資料庫單表數據在超過千萬記錄數以後,受系統IO吞吐量的限制及資料庫表間的原有關聯和排序關係影響,處理查詢指令的硬體間通常會產生大量繁雜的讀寫操作,使得硬體間利用率相差過大,導致硬體間平衡性較低,大大影響了資料庫的整體查詢速度的技術問題。
以上為對該發明實施例提供的一種資料庫查詢裝置進行的詳細描述,如圖4所示,以下為該發明實施例提供的一種資料庫查詢裝置的另一個實施例,包括:第一獲取單元401,用於獲取到對資料庫數據進行以主鍵為目標索引欄位的第一分區視圖的建立的分區視圖指令;第二獲取單元402,用於獲取到對資料庫數據進行至少兩個目標索引欄位的組合第二分區視圖的建立的分區視圖指令;配置單元403,用於根據分區視圖指令進行預置分區視圖配置。
接收單元404,用於接收由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令;查詢返回單元405,用於根據並行業務查詢命令結合對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果,預置分區視圖通過資料庫數據並結合目標索引欄位建立。
查詢返回單元405具體包括:第一查詢子單元4051,用於根據並行業務查詢命令,並結合對應的預置分區視圖產生的對應子進程進行對應資料庫的訪問及查詢;第一獲取子單元4052,用於獲取通過每個子進程查詢的結果所返回的查詢總數;合併返回子單元4053,用於根據並行業務查詢命令的查詢條件和查詢總數進行數據合併處理,並對合併後的數據與預置分區視圖進行匹配,返回匹配結果;第二查詢子單元4054,用於根據匹配結果,對匹配到的數據進行對應的具體分區視圖的計算,並在對應的具體分區視圖中進行查詢,返回查詢結果。
調整單元406,用於獲取到根據系統硬體負載信息進行的預置分區視圖調整的分區視圖調整指令,並根據分區視圖調整指令進行預置分區視圖的實時配置處理。預置分區視圖通過資料庫數據並結合目標索引欄位建立。
該實施例中,通過接收單元404接收到由第一伺服器根據查詢指令確定的第一接口發出的並行業務查詢命令,確定了當資料庫查詢方式在關係型資料庫單表數據在超過千萬記錄數以後直接進入與第一接口連線的存在有預置分區視圖的另一硬體設備,因為超過千萬記錄數與並行業務查詢命令相對應,然後查詢返回單元405根據並行業務查詢命令結合配置單元403所配置的對應的預置分區視圖通過對應的子進程進行查詢,並通過子進程返回查詢結果,實現了在另一硬體設備單獨並行處理大量數據,且預置分區視圖通過資料庫數據並結合目標索引欄位建立,使得處理的過程更加快速高效,解決了2016年11月之前的資料庫查詢方式在關係型資料庫單表數據在超過千萬記錄數以後,受系統IO吞吐量的限制及資料庫表間的原有關聯和排序關係影響,處理查詢指令的硬體間通常會產生大量繁雜的讀寫操作,使得硬體間利用率相差過大,導致硬體間平衡性較低,大大影響了資料庫的整體查詢速度的技術問題。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在該申請所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連線可以是通過一些接口,裝置或單元的間接耦合或通信連線,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現該實施例方案的目的。
另外,在該發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能單元的形式實現。
所述集成的單元如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基於這樣的理解,該發明的技術方案本質上或者說對2016年11月之前的技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質中,包括若干指令用以使得一台計算機設備(可以是個人計算機,伺服器,或者網路設備等)執行該發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:隨身碟、移動硬碟、唯讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光碟等各種可以存儲程式代碼的介質。

榮譽表彰

2021年11月,《一種資料庫查詢方法及裝置》獲得第八屆廣東專利獎優秀獎。

相關詞條

熱門詞條

聯絡我們