一種關(guān)系數(shù)據(jù)庫數(shù)據(jù)查詢方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其涉及一種關(guān)系數(shù)據(jù)庫數(shù)據(jù)查詢方法及系統(tǒng)。
【背景技術(shù)】
[0002]關(guān)系數(shù)據(jù)庫,是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫,借助于集合代數(shù)等概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。在關(guān)系數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu)中,以數(shù)據(jù)表做為度量數(shù)據(jù)量的維度,邏輯上,關(guān)系數(shù)據(jù)庫的存儲(chǔ)單元從小到大依次為:數(shù)據(jù)塊、盤區(qū)、段和表空間。
[0003]信息時(shí)代,信息量急劇增長,關(guān)系型數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù)量也急劇增加。數(shù)據(jù)量越大,關(guān)系型數(shù)據(jù)庫的處理效率越低,例如,對(duì)TB和PB級(jí)別的海量數(shù)據(jù)的查詢分析,關(guān)系型數(shù)據(jù)庫的處理速度十分緩慢,甚至無法處理。目前,提高關(guān)系型數(shù)據(jù)庫數(shù)據(jù)查詢效率的方法,主要是將部分?jǐn)?shù)據(jù)預(yù)先加載到緩存,在查詢過程中,這部分?jǐn)?shù)據(jù)從緩存中直接讀取,避免對(duì)存儲(chǔ)在其它存儲(chǔ)器中的數(shù)據(jù)庫執(zhí)行全表搜索,以此提高數(shù)據(jù)查詢效率。
[0004]但發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中發(fā)現(xiàn):關(guān)系型數(shù)據(jù)庫之所以在處理上十分緩慢,是由于關(guān)系型數(shù)據(jù)庫在引擎層面,通常默認(rèn)基于CB0(Cost Based Optimizat1n,基于成本的優(yōu)化)來確定執(zhí)行計(jì)劃,即基于CB0的數(shù)據(jù)讀取、計(jì)算和處理策略。這種執(zhí)行計(jì)劃依賴于數(shù)據(jù)庫統(tǒng)計(jì)信息的準(zhǔn)確,因此只適用于數(shù)據(jù)量較小的場景,在存儲(chǔ)有海量數(shù)據(jù)的關(guān)系型數(shù)據(jù)庫中,數(shù)據(jù)庫的統(tǒng)計(jì)信息難以準(zhǔn)確獲取,導(dǎo)致該執(zhí)行計(jì)劃的效率急劇下降;另外,對(duì)于使用緩存來提高查詢效率的方式,由于數(shù)據(jù)量遠(yuǎn)遠(yuǎn)大于數(shù)據(jù)庫緩存的容量,在緩存中的數(shù)據(jù)被命中前,可能已經(jīng)被淘汰出緩存,無法在查詢中重用,因此,現(xiàn)階段無論使用何種緩存策略,都已經(jīng)難以滿足關(guān)系型數(shù)據(jù)庫在海量數(shù)據(jù)查詢上的需求。
【發(fā)明內(nèi)容】
[0005]為克服相關(guān)技術(shù)中關(guān)系數(shù)據(jù)庫海量數(shù)據(jù)查詢效率低的問題,本申請(qǐng)?zhí)峁┮环N關(guān)系數(shù)據(jù)庫數(shù)據(jù)查詢方法及系統(tǒng)。
[0006]根據(jù)本申請(qǐng)實(shí)施例的第一方面,提供一種關(guān)系數(shù)據(jù)庫數(shù)據(jù)查詢方法,包括:
[0007]根據(jù)數(shù)據(jù)表單位時(shí)間內(nèi)增加的平均數(shù)據(jù)量,建立預(yù)設(shè)個(gè)數(shù)的邏輯存儲(chǔ)單元;
[0008]將所述數(shù)據(jù)表單位時(shí)間內(nèi)新增的數(shù)據(jù)依次按時(shí)間維度平均存儲(chǔ)于所述邏輯存儲(chǔ)單元中,并記錄每個(gè)單位時(shí)間內(nèi)新增數(shù)據(jù)的時(shí)間維度范圍;
[0009]將所述邏輯存儲(chǔ)單元的預(yù)設(shè)個(gè)數(shù)以及每個(gè)單位時(shí)間內(nèi)新增數(shù)據(jù)的時(shí)間維度范圍作為所述數(shù)據(jù)表的數(shù)據(jù)量定義;
[0010]根據(jù)所述數(shù)據(jù)表的數(shù)據(jù)量定義,將對(duì)應(yīng)于所述數(shù)據(jù)表的查詢條件按時(shí)間維度進(jìn)行拆分,根據(jù)拆分得到的子查詢條件查詢對(duì)應(yīng)的邏輯存儲(chǔ)單元。
[0011]可選的,根據(jù)所述數(shù)據(jù)表的數(shù)據(jù)量定義,將對(duì)應(yīng)于所述數(shù)據(jù)表的查詢條件按時(shí)間維度進(jìn)行拆分,包括:
[0012]在數(shù)據(jù)量定義中找到能夠?qū)⑺霾樵儣l件的時(shí)間范圍涵蓋的邏輯存儲(chǔ)單元內(nèi)數(shù)據(jù)的時(shí)間維度范圍的組合,所述組合對(duì)應(yīng)的邏輯存儲(chǔ)單元的個(gè)數(shù)為能夠?qū)崿F(xiàn)涵蓋所述時(shí)間范圍的最小個(gè)數(shù);
[0013]以所述最小個(gè)數(shù)為查詢條件的拆分個(gè)數(shù),將所述數(shù)據(jù)表的查詢條件按時(shí)間維度進(jìn)行拆分。
[0014]可選的,所述數(shù)據(jù)量定義還包括每個(gè)單位時(shí)間新增數(shù)據(jù)的時(shí)間維度范圍。
[0015]可選的,根據(jù)所述數(shù)據(jù)表的數(shù)據(jù)量定義,將對(duì)應(yīng)于所述數(shù)據(jù)表的查詢條件按時(shí)間維度進(jìn)行拆分,包括:
[0016]將所述查詢條件按時(shí)間維度根據(jù)所述每個(gè)單位時(shí)間內(nèi)新增數(shù)據(jù)的時(shí)間維度范圍進(jìn)行粗拆分,得到粗拆分子查詢條件;
[0017]將每個(gè)所述粗拆分子查詢條件按時(shí)間維度根據(jù)所述邏輯存儲(chǔ)單元的預(yù)設(shè)個(gè)數(shù)進(jìn)行細(xì)拆分,將得到的細(xì)拆分子查詢條件作為拆分得到的子查詢條件。
[0018]可選的,根據(jù)所述數(shù)據(jù)表的數(shù)據(jù)量定義,將對(duì)應(yīng)于所述數(shù)據(jù)表的查詢條件按時(shí)間維度進(jìn)行拆分,包括:
[0019]根據(jù)所述查詢條件的查詢時(shí)間范圍、每個(gè)單位時(shí)間對(duì)應(yīng)的新增數(shù)據(jù)的時(shí)間維度范圍和所述邏輯存儲(chǔ)單元的預(yù)設(shè)個(gè)數(shù)計(jì)算查詢條件拆分個(gè)數(shù);
[0020]將所述查詢條件按查詢條件拆分個(gè)數(shù)拆分為子查詢條件。
[0021]可選的,所述關(guān)系數(shù)據(jù)庫數(shù)據(jù)查詢方法中,用于存儲(chǔ)不同數(shù)據(jù)表的邏輯存儲(chǔ)單元具有相同的大小。
[0022]根據(jù)本申請(qǐng)實(shí)施例的第二方面,提供一種關(guān)系數(shù)據(jù)庫數(shù)據(jù)查詢系統(tǒng),包括:
[0023]邏輯存儲(chǔ)單元建立模塊,用于根據(jù)數(shù)據(jù)表單位時(shí)間內(nèi)增加的平均數(shù)據(jù)量,按時(shí)間維度連續(xù)建立預(yù)設(shè)個(gè)數(shù)的邏輯存儲(chǔ)單元;
[0024]數(shù)據(jù)存儲(chǔ)模塊,用于將所述數(shù)據(jù)表單位時(shí)間內(nèi)新增的數(shù)據(jù)依次按時(shí)間維度平均存儲(chǔ)于所述邏輯存儲(chǔ)單元中,并記錄每個(gè)單位時(shí)間內(nèi)新增數(shù)據(jù)的時(shí)間維度范圍;
[0025]數(shù)據(jù)量定義模塊,用于將所述邏輯存儲(chǔ)單元的預(yù)設(shè)個(gè)數(shù)以及每個(gè)單位時(shí)間內(nèi)新增數(shù)據(jù)的時(shí)間維度范圍作為所述數(shù)據(jù)表的數(shù)據(jù)量定義;
[0026]查詢條件拆分模塊,用于根據(jù)所述數(shù)據(jù)表的數(shù)據(jù)量定義,將對(duì)應(yīng)于所述數(shù)據(jù)表的查詢條件按時(shí)間維度進(jìn)行拆分;
[0027]查詢模塊,用于根據(jù)拆分得到的子查詢條件查詢對(duì)應(yīng)的邏輯存儲(chǔ)單元。
[0028]可選的,所述查詢條件拆分模塊,包括:
[0029]時(shí)間維度范圍組合查找模塊,用于在數(shù)據(jù)量定義中找到能夠?qū)⑺霾樵儣l件的時(shí)間范圍涵蓋的邏輯存儲(chǔ)單元內(nèi)數(shù)據(jù)的時(shí)間維度范圍的組合,所述組合對(duì)應(yīng)的邏輯存儲(chǔ)單元的個(gè)數(shù)為能夠?qū)崿F(xiàn)涵蓋所述時(shí)間范圍的最小個(gè)數(shù);
[0030]個(gè)數(shù)記錄模塊,用于記錄所述最小個(gè)數(shù);
[0031]第一拆分模塊,用于以所述最小個(gè)數(shù)為查詢條件的拆分個(gè)數(shù),將所述數(shù)據(jù)表的查詢條件按時(shí)間維度進(jìn)行拆分。
[0032]可選的,所述數(shù)據(jù)量定義還包括每個(gè)單位時(shí)間新增數(shù)據(jù)的時(shí)間維度范圍。
[0033]可選的,所述查詢條件拆分模塊,包括:
[0034]粗拆分模塊,用于將所述查詢條件按時(shí)間維度根據(jù)所述每個(gè)單位時(shí)間內(nèi)新增數(shù)據(jù)的時(shí)間維度范圍進(jìn)行粗拆分,得到粗拆分子查詢條件;
[0035]細(xì)拆分模塊,用于將每個(gè)所述粗拆分子查詢條件按時(shí)間維度根據(jù)所述邏輯存儲(chǔ)單元的預(yù)設(shè)個(gè)數(shù)進(jìn)行細(xì)拆分,將得到的細(xì)拆分子查詢條件作為拆分得到的子查詢條件。
[0036]可選的,所述查詢條件拆分模塊,包括:
[0037]計(jì)算模塊,用于根據(jù)所述查詢條件的查詢時(shí)間范圍、每個(gè)單位時(shí)間對(duì)應(yīng)的新增數(shù)據(jù)的時(shí)間維度范圍和所述邏輯存儲(chǔ)單元的預(yù)設(shè)個(gè)數(shù)計(jì)算查詢條件拆分個(gè)數(shù);
[0038]第二拆分模塊,用于將所述查詢條件按查詢條件拆分個(gè)數(shù)拆分為子查詢條件。
[0039]可選的,所述關(guān)系數(shù)據(jù)庫數(shù)據(jù)查詢系統(tǒng)中,所述邏輯存儲(chǔ)單元建立模塊對(duì)不同數(shù)據(jù)表建立相同大小的邏輯存儲(chǔ)單元。
[0040]本申請(qǐng)實(shí)施例提供的技術(shù)方案可以包括以下有益效果:將數(shù)據(jù)表中的數(shù)據(jù)以單位時(shí)間數(shù)據(jù)量進(jìn)行分割,所述單位時(shí)間數(shù)據(jù)量即單位時(shí)間內(nèi)數(shù)據(jù)表新增的數(shù)據(jù)量,并將每個(gè)單位時(shí)間數(shù)據(jù)量分布存儲(chǔ)于預(yù)設(shè)個(gè)數(shù)的邏輯存儲(chǔ)單元中,對(duì)應(yīng)地,在查詢時(shí),將查詢條件按時(shí)間維度以與數(shù)據(jù)表相同的拆分規(guī)則進(jìn)行拆分,即將查詢條件按時(shí)間維度根據(jù)邏輯存儲(chǔ)單元內(nèi)數(shù)據(jù)的時(shí)間維度范圍進(jìn)行拆分,或者將查詢條件按時(shí)間維度根據(jù)單位時(shí)間進(jìn)行拆分,并將與單位時(shí)間對(duì)應(yīng)的部分拆分為數(shù)目與預(yù)設(shè)個(gè)數(shù)相同的子查詢條件,從而使子查詢條件與邏輯存儲(chǔ)單元在時(shí)間維度上對(duì)應(yīng),每個(gè)子查詢單元只需查詢對(duì)應(yīng)的邏輯存儲(chǔ)單元。本申請(qǐng)改變了現(xiàn)有的關(guān)系數(shù)據(jù)庫查詢機(jī)制。由于根據(jù)每個(gè)子查詢條件只需查詢對(duì)應(yīng)的邏輯存儲(chǔ)單元,每個(gè)子查詢條件的查詢工作量小,且多個(gè)子查詢條件同時(shí)并行查詢,能夠極大地提高關(guān)系數(shù)據(jù)庫的查詢效率。
[0041]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本申請(qǐng)。
【附圖說明】
[0042]為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,對(duì)于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0043]圖1為本申請(qǐng)一示例性實(shí)施例示出的一種關(guān)系數(shù)據(jù)庫數(shù)據(jù)查詢方法的流程示意圖。
[0044]圖2為本申請(qǐng)一示例性實(shí)施例示出的一種關(guān)系數(shù)據(jù)庫數(shù)據(jù)查詢系統(tǒng)的框圖。
【具體實(shí)施方式】
[0045]這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本申請(qǐng)相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請(qǐng)的一些方面相一致的裝置和方法的例子。
[0046]為了全面理解本申請(qǐng),在以下詳細(xì)描述中提到了眾多具體的細(xì)節(jié),但是本領(lǐng)域技術(shù)人員應(yīng)該理解,本申請(qǐng)可以無需這些具體細(xì)