新四季網

一種數據存儲方法及查詢方法與流程

2023-04-30 13:44:11 1


本發明涉及計算機技術領域,特別是涉及一種數據存儲方法及查詢方法。



背景技術:

隨著手機的普及,出現了海量的用戶,因此對於手機號碼的管理也越來越複雜。例如,由於一些不法分子利用手機進行廣告推銷或者引誘消費者與其聯繫,從而導致消費者出現巨額的損失。因此,運營商或者消費者可以將這些手機號碼進行存儲構成一個黑名單,當需要進行正常的通信業務時,將目標號碼與存儲的黑名單進行比較,如果黑名單中存在與目標號碼相同的號碼,說明目標號碼就在黑名單的範圍內,則需要過濾掉這個目標號碼,如果黑名單中不存在與目標號碼相同的號碼,說明目標號碼不在黑名單的範圍內,則不需要過濾掉這個目標號碼,可以與這個目標號碼進行正常的通信業務。

現有技術中,採用的存儲方法就是簡單的將每個手機號碼存儲在指定的區域中。由於黑名單中的號碼非常多,可能存在上千萬個,因此,以上述的存儲方式進行存儲後,如果需要對某個號碼進行查詢,則需要遍歷大量的號碼,甚至是全部的號碼。如果有100個號碼,則最大循環次數就是100次,如果是1000個號碼,則最大循環次數就是1000次,很顯然,如果是千萬級別的個數,則最大的循環次數就是千萬次。

綜上所述,現有的存儲方式使得後續的查詢工作非常繁瑣,會耗費大量的時間,並且隨著數據的增多,查詢的循環次數也在不斷增加,對於伺服器的性能影響非常大。因此,如何降低查詢時間以提高查詢的效率是本領域技術人員亟待解決的問題。



技術實現要素:

本發明的目的是提供一種數據存儲方法及數據查詢方法,本方法能夠克服後續查詢工作繁瑣,耗費大量時間的問題,並且不會隨著數據的增多,而增加查詢的循環次數。因此,本方法能夠降低查詢時間以提高查詢的效率。

為解決上述技術問題,本發明提供一種數據存儲方法,包括:

將待存儲數據按照數據位的位置關係分解成N個層級;

將所述待存儲數據按照層級的關聯關係存入預先設置的多叉樹結構中;

其中,所述多叉樹中的節點層級與所述N個層級對應,N為正整數,且等於或小於所述待存儲數據的數據位數。

優選地,所述待存儲數據為包含多位數字的數字信息。

優選地,所述數字信息為10進位數據。

優選地,所述將待存儲數據按照數據位的位置關係分解成N個層級具體包括:

將所述待存儲數據按照預定規則進行壓縮以生成對應的新待存儲數據;

將所述新待存儲數據按照數據位的位置關係分解成N個層級。

優選地,所述待存儲數據為包含11位數字的手機號碼。

優選地,所述預定規則為預定進位轉換,則所述新待存儲數據為所述待存儲數據按照預定進位轉換後的結果。

優選地,所述預定進位轉換為16進位轉換或32進位轉換或64進位轉換。

優選地,所述待存儲數據為包含多位字母的字母信息。

優選地,所述N個層級的先後順序與所述待存儲數據的讀取順序相同。

為解決上述技術問題,本發明提供一種數據查詢方法,基於上述所述的數據存儲方法,包括:

將待查詢數據按照數據位的關係分解成N個層級;

將所述待查詢數據按照層級的關聯關係遍歷所述多叉樹結構,直到所述多叉樹結構中的第M個節點層級中未包含有對應的數據位或查詢到所述待查詢數據為止;其中,M小於或等於N。

本發明所提供的數據存儲方法,包括將待存儲數據按照層級的關聯關係存入預先設置的多叉樹結構中,然後將待存儲數據按照數據位的位置關係分解成N個層級。通過這樣的存儲方式,在進行後續的查詢過程中,不需要遍歷全部的存儲數據,只需要依據待查詢數據中各數據位的層級關係,遍歷多叉樹結構即可,最大的循環次數為多叉樹的節點層級,並且循環次數不會隨著數據量的增多而增多。因此,本發明提供的數據存儲方法能夠降低後續查詢的工作量,從而降低查詢時間和提高查詢效率。

此外,本發明還提供的一種數據查詢方法基於上述所述的數據存儲方法,在查詢過程中,該方法不需要遍歷全部的存儲數據,只需要依據待查詢數據中各數據位的層級關係,遍歷多叉樹結構即可,最大的循環次數為多叉樹的節點層級,並且循環次數不會隨著數據量的增多而增多。因此,本發明提供的數據查詢方法能夠降低查詢的工作量,從而降低查詢時間和提高查詢效率。

附圖說明

為了更清楚地說明本發明實施例,下面將對實施例中所需要使用的附圖做簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。

圖1為本發明實施例提供的一種數據存儲方法的流程圖;

圖2為發明實施例提供的一種數據存儲結構示意圖;

圖3為本發明實施例提供另一種數據存儲方法的流程圖;

圖4為本發明實施例提供的一種經過壓縮後的存儲結構示意圖;

圖5為本發明實施例提供的一種數據查詢方法的流程圖。

具體實施方式

下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下,所獲得的所有其他實施例,都屬於本發明保護範圍。

本發明的核心是提供一種數據存儲方法及數據查詢方法,本方法能夠克服後續查詢工作繁瑣,耗費大量時間的問題,並且不會隨著數據的增多,而增加查詢的循環次數。因此,本方法能夠降低查詢時間以提高查詢的效率。

為了使本技術領域的人員更好地理解本發明方案,下面結合附圖和具體實施方式對本發明作進一步的詳細說明。

圖1為本發明實施例提供的一種數據存儲方法的流程圖。如圖1所示,包括:

S10:將待存儲數據按照數據位的位置關係分解成N個層級。

可以理解的是,待存儲數據可以為包含多位數字的數字信息或為包含多位字母的字母信息。例如,對於數字信息來說如果是10進位的數據,則數據位中的內容就是0-9,數據位中的內容均是數字,如果是16進位的數據,則數據位中的內容就是0-F,則數據位中的內容除了0-9數字外,還包括A-F幾個字母,但是A-F幾個字母也為數字信息。另外,還可以是2進位或者32進位的數據,本實施例不再贅述。

本實施例中,按照數據位的位置關係分解成N個層級必須保證每個數據位在原始數據中的位置關係與分解後的層級關係時相同的。例如,如果數據位為N位,分解成N個層級的話,則第一個數據位的數據如果在第一個層級,則第二個數據位的數據必須是第二個層級,第三個數據位的數據必須是第三個層級,以此類推;同樣的,如果第一個數據位的數據在最後一個層級,則第二個數據位的數據必須在倒數第二個層級,第三個數據位的數據必須在倒數第三個層級,以此類推。只有這樣的分解方式,才能保證每個數據位在原始數據中的位置關係與在分解結構中的位置關係是相同的。

需要說明的是,上文中描述的數據位有N位,則分解成N個層級只是一種具體實現形式,在另外一種實施例中,還可以是每兩位,或者每三位等形式,本實施例不再贅述。分解的層級越多,則需要循環的查詢的次數越多,但是每一層的節點較少,即同一層的查詢時間就會較少。

S11:將待存儲數據按照層級的關聯關係存入預先設置的多叉樹結構中,其中,多叉樹中的節點層級與N個層級對應,N為正整數,且等於或小於待存儲數據的數據位數。

多叉樹結構為倒立的樹狀結構,多叉樹中有多個節點層級,這裡的節點層級與待存儲數據分解成的N個層級相互對應。

為了讓本領域技術人員更加理解本發明所提供的技術方案,本實施例中給出一個簡單的例子加以說明。如果待存儲數據均為6位的數字信息,且為10進位,例如412012、412013、415357和415358。按照步驟S10將這四個數據進行分解,例如分解成6個等級。圖2為發明實施例提供的一種數據存儲結構示意圖。如圖2所示,如果最高數據位為第一個層級的話,則每個待存儲數據中的最高位(均為4)存儲在多叉樹結構中的第一個節點層級,這裡4個待存儲數據的最高數據位均為1,因此,不需要分叉。按照數據位的位置關係,第一個待存儲數據的第二個數據位、第二個待存儲數據的第二個數據位、第三個待存儲數據的第二個數據位以及第四個待存儲數據的第二個數據位均為多叉樹結構中的第二個節點層級,這裡4個待存儲數據的第二個數據位均為1,因此,不需要分叉。按照數據位的位置關係,第一個待存儲數據的第三個數據位、第二個待存儲數據的第三個數據位、第三個待存儲數據的第三個數據位以及第四個待存儲數據的第三個數據位均為多叉樹結構中的第三個節點層級,這裡4個待存儲數據的第三個數據位有兩種,分別為2或5,因此,多叉樹要進行分叉,即第三個節點層級有兩個節點。其餘的分解和存儲均類似,本實施例不再贅述。

採用上述的存儲方式,當進行數據查詢時,將待查詢數據按照層級的關聯關係遍歷多叉樹結構,直到多叉樹結構中的第M個節點層級中未包含有對應的數據位或查詢到待查詢數據為止;其中,M小於或等於N。圖2中由於數據較少對於查詢的效果並明顯,然而如果數據較多的話,例如最大可以是999999,則需要重複查詢上萬次,甚至更多次才可能查詢到相關的數據,因此循環查詢的次數非常多,並且每個數據之間並沒有關聯,如果所要查詢的數據在最後一個或者不存在的話,則需要的查詢次數最大。但是採用本存儲方法的話,則只需要按照多叉樹結構依次查詢即可。如果需要查詢440896這個數據是否在存儲範圍中,則只需要對多叉樹結構中的第一個節點層級查詢是否包含第一個數據位4即可,如果這個節點層級中包含4,則進行下一個節點層級的查詢,下一個數據位為4,不再第二個節點層級中,則說明該待查詢數據不再存儲範圍內,也就不需要再進行後續的查詢步驟。利用本存儲方式,只需要查詢2次即可,但是對於現有的存儲方式來說,需要遍歷存儲範圍內的全部數據才能確定是否存在待查詢數據,因此本存儲方式能夠較小查詢的次數。

本實施例提供的數據存儲方法,包括將待存儲數據按照層級的關聯關係存入預先設置的多叉樹結構中,然後將待存儲數據按照數據位的位置關係分解成N個層級。通過這樣的存儲方式,在進行後續的查詢過程中,不需要遍歷全部的存儲數據,只需要依據待查詢數據中各數據位的層級關係,遍歷多叉樹結構即可,最大的循環次數為多叉樹的節點層級,並且循環次數不會隨著數據量的增多而增多。因此,本發明提供的數據存儲方法能夠降低後續查詢的工作量,從而降低查詢時間和提高查詢效率。

在具體實施中,往往存儲的數據非常多,給存儲空間帶來了巨大的壓力,如何能夠減小存儲空間的用量是本領域技術人員面臨的又一個大問題。

本實施例中,在將待存儲數據存儲至多叉樹結構之前,將待存儲數據進行壓縮,從而減少存儲空間的用量,具體過程如下。

圖3為本發明實施例提供另一種數據存儲方法的流程圖。在圖1的基礎上步驟S10具體包括:

S100:將待存儲數據按照預定規則進行壓縮以生成對應的新待存儲數據。

S101:將新待存儲數據按照數據位的位置關係分解成N個層級。

可以理解的是,採用何種預定規則需要根據實際情況而定,例如預定規則為預定進位轉換,則新待存儲數據為待存儲數據按照預定進位轉換後的結果。預定進位轉換為16進位轉換或32進位轉換或64進位轉換。例如,如果一個待存儲數據本身就是16進位,因此,如果採用16進位轉換是沒有意義的,無法實現數據的壓縮。

在一種具體的實施方式中,待存儲數據為包含11位數字的手機號碼。當前中國大陸的手機號碼為包含11位數字,均以1開頭。對於這樣的數據我們可以進行64進位的數據轉換。例如,對於「18500000000」進行64進位轉換後為「heHVA0」,很顯然,數據位由原來的11位,變成現在的6位,因此如果不進行壓縮,則在進行數據查找時,需要循環11次,而經過壓縮後,則只需要循環6次即可。圖4為本發明實施例提供的一種經過壓縮後的存儲結構示意圖。

作為優選的實施方式,N個層級的先後順序與待存儲數據的讀取順序相同。例如,圖2或圖4所示的存儲示意圖。

在以上述存儲方法進行存儲下,本發明還提供一種數據查詢方法。圖5為本發明實施例提供的一種數據查詢方法的流程圖。該數據查詢方法基於上述實施例所述的數據存儲方法,包括:

S20:將待查詢數據按照數據位的關係分解成N個層級;

S21:將待查詢數據按照層級的關聯關係遍歷多叉樹結構,直到多叉樹結構中的第M個節點層級中未包含有對應的數據位或查詢到待查詢數據為止,其中,M小於或等於N。

由於該數據查詢方法基於上述實施例所述的數據存儲方法,因此,數據存儲方法對應的實施例不再贅述。對於一個待查詢數據,如果第三個節點層級中不包含該數據對應的數據位,則可以停止本次查詢,否則,依次對每個節點層級查詢即可。

本實施例提供的數據查詢方法,基於數據存儲方法,該存儲方法包括將待存儲數據按照層級的關聯關係存入預先設置的多叉樹結構中,然後將待存儲數據按照數據位的位置關係分解成N個層級。在查詢過程中,不需要遍歷全部的存儲數據,只需要依據待查詢數據中各數據位的層級關係,遍歷多叉樹結構即可,最大的循環次數為多叉樹的節點層級,並且循環次數不會隨著數據量的增多而增多。因此,本發明提供的數據查詢方法能夠降低查詢的工作量,從而降低查詢時間和提高查詢效率。

以上對本發明所提供的數據存儲方式及查詢方法進行了詳細介紹。說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對於實施例公開的裝置而言,由於其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護範圍內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀