亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法

文檔序號:6631797閱讀:673來源:國知局
一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法
【專利摘要】本發(fā)明涉及一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法,該方法包括以下步驟:(1)在表中預(yù)留一個擴(kuò)展字段,并為該擴(kuò)展字段創(chuàng)建唯一性索引;(2)進(jìn)行數(shù)據(jù)存儲時,將標(biāo)示id和數(shù)據(jù)采樣時間拼接生成所述擴(kuò)展字段的值;(3)將所述擴(kuò)展字段值與其他字段的值一并存入所述表中,擴(kuò)展字段與其他字段的值在一條數(shù)據(jù)記錄中;(4)進(jìn)行數(shù)據(jù)查詢時,將用戶查詢的標(biāo)示id和數(shù)據(jù)采樣時間拼接得到需要查詢的所述擴(kuò)展字段的值,利用所述擴(kuò)展字段值作為查詢條件進(jìn)行數(shù)據(jù)查詢。本發(fā)明在同時進(jìn)行數(shù)據(jù)庫存入和查詢的過程中,將關(guān)鍵字段拼接為一個字段,并建立唯一性索引,不僅滿足了數(shù)據(jù)的唯一性要求,提高了查詢效率,而且還保證了數(shù)據(jù)存入數(shù)據(jù)庫的速度。
【專利說明】一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)庫領(lǐng)域,尤其涉及一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法。

【背景技術(shù)】
[0002] 在很多行業(yè)中,每時每刻都產(chǎn)生大量數(shù)據(jù),從而形成了對海量數(shù)據(jù)的存儲性能需 求,而隨著各行業(yè)信息系統(tǒng)的發(fā)展,又產(chǎn)生了對這些海量歷史數(shù)據(jù)的查詢性能需求,例如查 詢某一特定標(biāo)示id在某一時間段的所有記錄,從而要求我們?yōu)樵摌?biāo)示id以及時間字段建 立相應(yīng)的索引滿足快速查詢的需求。同時由于在不斷產(chǎn)生新的數(shù)據(jù)要求導(dǎo)入進(jìn)存儲系統(tǒng) 中,這樣還要求數(shù)據(jù)庫系統(tǒng)有極高的導(dǎo)入速度。
[0003] 而索引是對數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu)。其方式為二叉樹或 者哈希查找,避免掃描全表的情況。更通俗來講,索引的作用相當(dāng)于圖書的目錄,可以根據(jù) 目錄中的頁碼快速找到所需的內(nèi)容。在一張有大量記錄的表中,如果沒有創(chuàng)建查詢條件的 索引時,其搜索方式就是全表搜索,將所有表中記錄與查詢條件做比較,再返回查詢結(jié)果, 但是這樣會消耗大量時間以及磁盤10操作;另一種方式就是合理創(chuàng)建索引,先在索引中查 找符合查詢條件的索引值,再通過索引值對應(yīng)的行號快速找到滿足查詢條件的結(jié)果集,這 樣對查詢性能會有很大幫助。
[0004] 對于標(biāo)示id+數(shù)據(jù)采樣時間這種比較普適性的查詢場景,可以分別建立標(biāo)示id和 數(shù)據(jù)采樣時間的唯一性索引或者建立這兩個字段的聯(lián)合索引以提高查詢性能及保證數(shù)據(jù) 唯一性,但是隨著單表數(shù)據(jù)容量的增大,數(shù)據(jù)庫系統(tǒng)需要維護(hù)大量的索引,創(chuàng)建過多的索引 勢必會降低存儲的性能。
[0005] 例如在某張數(shù)據(jù)記錄表中有標(biāo)示id、采樣時間以及其他一些字段等。其中查詢條 件為標(biāo)示id和采樣時間,如果對標(biāo)示id及采樣時間字段分別創(chuàng)建索引或者創(chuàng)建兩個字段 的聯(lián)合y引固然能提升查詢性能,但是隨著數(shù)據(jù)量的增大數(shù)據(jù)庫系統(tǒng)要維護(hù)大量的索引, 不能提高數(shù)據(jù)庫增刪改的性能,反而會影響其性能,基于這個原因我們提出了另一種創(chuàng)建 索引的方法,該方法既能有效保證數(shù)據(jù)唯一性及查詢速度又能降低過多的索引對存儲帶來 的負(fù)面效應(yīng)。


【發(fā)明內(nèi)容】

[0006]本發(fā)明為克服上述的不足之處,目的在于提供一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方 法,該方法依據(jù)標(biāo)示id和時間time可以唯一確定一條數(shù)據(jù)記錄的思想,通過在表中預(yù)留一 個擴(kuò)展字段,并為該擴(kuò)展字段創(chuàng)建唯一性索引。數(shù)據(jù)存儲時,擴(kuò)展字段的值是由標(biāo)示"和 時間time兩個字段的值拼接得來,與其他字段一起存入數(shù)據(jù)庫。數(shù)據(jù)查詢時,將查詢參數(shù) 標(biāo)f id和時間time按與存儲相同的方式拼接成擴(kuò)展字段的值,將擴(kuò)展字段作為SQL參數(shù) 進(jìn)行數(shù)據(jù)查詢。該方法不僅滿足了數(shù)據(jù)的唯一性要求,提高了查詢效率,而且還保證了數(shù)據(jù) 存入數(shù)據(jù)庫的速度。
[0007]本發(fā)明是通過以下技術(shù)方案達(dá)到上述目的:一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方 法,包括如下步驟:
[0008] (1)創(chuàng)建數(shù)據(jù)記錄表并預(yù)留擴(kuò)展字段;
[0009] (2)為擴(kuò)展字段創(chuàng)建唯一性索引;
[0010] ⑶為數(shù)據(jù)存儲對象中各屬性賦值;
[0011] (4)將標(biāo)示id和數(shù)據(jù)采樣時間拼接生成數(shù)據(jù)存儲對象中擴(kuò)展字段的屬性值;
[0012] (5)將擴(kuò)展字段屬性值與其他字段的屬性值作為一條數(shù)據(jù)記錄存入數(shù)據(jù)庫;
[0013] (6)通過標(biāo)示id和數(shù)據(jù)采樣時間拼接得到需要查詢的擴(kuò)展字段的屬性值;
[0014] (7)利用擴(kuò)展字段屬性值進(jìn)行數(shù)據(jù)查詢,得到數(shù)據(jù)記錄。
[0015] 作為優(yōu)選,所述擴(kuò)展字段的類型是十進(jìn)制長度為20的長整型。
[0016] 作為優(yōu)選,所述步驟(4)與步驟(6)對標(biāo)示id和數(shù)據(jù)采樣時間的拼接方法相同。
[0017] 作為優(yōu)選,所述的拼接過程步驟如下:
[0018] 1)將數(shù)據(jù)采樣時間轉(zhuǎn)換為數(shù)據(jù)采樣時間代表的秒數(shù)量,秒數(shù)量的類型是長度為 10位的長整型;
[0019] 2)將標(biāo)示id轉(zhuǎn)換為長度不超過10位的長整型數(shù),將長整型數(shù)乘以10的10次方;
[0020] 3)將步驟1)和步驟2)的結(jié)果進(jìn)行相加得到擴(kuò)展字段的屬性值。
[0021] 作為優(yōu)選,所述的步驟(7)利用擴(kuò)展字段屬性值進(jìn)行數(shù)據(jù)查詢?yōu)閷U(kuò)展字段值作 為SQL的參數(shù)進(jìn)行數(shù)據(jù)查詢。
[0022] 本發(fā)明的有益效果在于:(1)本發(fā)明僅對一個字段建立唯一性索引,不僅有效保 證了數(shù)據(jù)唯一性及查詢速度,而且還避免了過多索引對存儲帶來的負(fù)面效應(yīng);(2)本發(fā)明 在同時進(jìn)行數(shù)據(jù)庫存入和查詢的過程中,將關(guān)鍵字段拼接為一個字段,保證了數(shù)據(jù)存入數(shù) 據(jù)庫的速度。

【專利附圖】

【附圖說明】
[0023] 圖1是本發(fā)明的整體結(jié)構(gòu)示意圖;
[0024] 圖2是本發(fā)明數(shù)據(jù)存儲的流程圖;
[0025] 圖3是本發(fā)明數(shù)據(jù)記錄表查詢的流程圖。

【具體實(shí)施方式】
[0026]下面結(jié)合具體實(shí)施例對本發(fā)明進(jìn)行進(jìn)一步描述,但本發(fā)明的保護(hù)范圍并不僅限于 此:
[0027] 實(shí)施例1 :一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法,主要步驟包括:(1)在表中預(yù)留 一個擴(kuò)展字段,并為該擴(kuò)展字段創(chuàng)建唯一性索引。
[0028] 這里的唯一性索引的定義是通常數(shù)據(jù)庫軟件(oracle,mysql等)所支持的一種索 引類型,將擴(kuò)展字段的索引類型設(shè)置為"唯一性索引"以保證在索引列中的全部數(shù)據(jù)是唯二 的,不會包含重復(fù)數(shù)據(jù)。
[0029]如圖1所示的本發(fā)明創(chuàng)建數(shù)據(jù)庫索引方法的整體示意圖,該發(fā)明涉及數(shù)據(jù)庫、存 儲系統(tǒng)和查詢系統(tǒng)三個模塊。
[0030]假設(shè)在所述數(shù)據(jù)庫中數(shù)據(jù)記錄表的定義如下表1所示,這里簡稱該表為 datarecord :
[0031]

【權(quán)利要求】
1. 一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法,其特征在于包括如下步驟: (1) 創(chuàng)建數(shù)據(jù)記錄表并預(yù)留擴(kuò)展字段; (2) 為擴(kuò)展字段創(chuàng)建唯一性索引; (3) 為數(shù)據(jù)存儲對象中各屬性賦值; (4) 將標(biāo)示id和數(shù)據(jù)采樣時間拼接生成數(shù)據(jù)存儲對象中擴(kuò)展字段的屬性值; (5) 將擴(kuò)展字段屬性值與其他字段的屬性值作為一條數(shù)據(jù)記錄存入數(shù)據(jù)庫; (6) 通過標(biāo)示id和數(shù)據(jù)采樣時間拼接得到需要查詢的擴(kuò)展字段的屬性值; (7) 利用擴(kuò)展字段屬性值進(jìn)行數(shù)據(jù)查詢,得到數(shù)據(jù)記錄。
2. 根據(jù)權(quán)利要求1所述的一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法,其特征在于,所述擴(kuò) 展字段的類型是十進(jìn)制長度為20的長整型。
3. 根據(jù)權(quán)利要求1或2所述的一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法,其特征在于,所述 步驟(4)與步驟(6)對標(biāo)示id和數(shù)據(jù)采樣時間的拼接方法相同。
4. 根據(jù)權(quán)利要求1或2所述的一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法,其特征在于,所述 的拼接過程步驟如下: 1) 將數(shù)據(jù)采樣時間轉(zhuǎn)換為數(shù)據(jù)采樣時間代表的秒數(shù)量,秒數(shù)量的類型是長度為10位 的長整型; 2) 將標(biāo)示id轉(zhuǎn)換為長度不超過10位的長整型數(shù),將長整型數(shù)乘以10的10次方; 3) 將步驟1)和步驟2)的結(jié)果進(jìn)行相加得到擴(kuò)展字段的屬性值。
5. 根據(jù)權(quán)利要求3所述的一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法,其特征在于,所述的 拼接過程步驟如下: 1) 將數(shù)據(jù)采樣時間轉(zhuǎn)換為數(shù)據(jù)采樣時間代表的秒數(shù)量,秒數(shù)量的類型是長度為10位 的長整型; 2) 將標(biāo)示id轉(zhuǎn)換為長度不超過10位的長整型數(shù),將長整型數(shù)乘以10的10次方; 3) 將步驟1)和步驟2)的結(jié)果進(jìn)行相加得到擴(kuò)展字段的屬性值。
6. 根據(jù)權(quán)利要求1或2或5所述的一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法,其特征在于, 所述的步驟(7)利用擴(kuò)展字段屬性值進(jìn)行數(shù)據(jù)查詢?yōu)閷U(kuò)展字段值作為SQL的參數(shù)進(jìn)行數(shù) 據(jù)查詢。
7. 根據(jù)權(quán)利要求3所述的一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法,其特征在于,所述的 步驟(7)利用擴(kuò)展字段屬性值進(jìn)行數(shù)據(jù)查詢?yōu)閷U(kuò)展字段值作為SQL的參數(shù)進(jìn)行數(shù)據(jù)查 詢。
8. 根據(jù)權(quán)利要求4所述的一種創(chuàng)建數(shù)據(jù)庫索引及其查詢的方法,其特征在于,所述的 步驟(7)利用擴(kuò)展字段屬性值進(jìn)行數(shù)據(jù)查詢?yōu)閷U(kuò)展字段值作為SQL的參數(shù)進(jìn)行數(shù)據(jù)查 詢。
【文檔編號】G06F17/30GK104268298SQ201410583221
【公開日】2015年1月7日 申請日期:2014年10月27日 優(yōu)先權(quán)日:2014年10月27日
【發(fā)明者】徐田田, 齊朗曄, 王杰, 李少利, 李江偉 申請人:中電??导瘓F(tuán)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1