數據存儲方法及裝置的制造方法
【技術領域】
[0001] 本發明涉及數據庫領域,尤其涉及一種數據存儲方法及裝置。
【背景技術】
[0002] 隨著互聯網的快速發展,企業的業務數據量也在不斷地攀升,數據存儲及其訪問 方法逐漸成為業內關注的焦點。傳統的數據庫系統是基于單臺數據庫對數據進行管理。隨 著數據量的增加,數據庫中的數據量會越來越大,當數據量達到一定程度的時候,對數據的 查詢會逐漸變慢,勢必會在數據的訪問上產生瓶頸。
[0003]目前已有一些對數據庫進行分庫分表的方法,可以按照邏輯將數據庫中一些數據 量比較大的數據表切分出來放在另外的數據存儲設備中,例如可按照業務種類的數據量大 小,將數據量大的業務種類對應的數據表切分出來放在另外的存儲設備中。
[0004] 然而,現有的分庫分表的方法在一個邏輯數據表的數據量持續增長的情況下(例 如,某業務種類的數據量持續增長),仍然存在數據查詢減慢的問題,造成數據訪問的瓶頸, 從而降低數據庫的性能。
【發明內容】
[0005] 針對現有技術的缺陷,本發明提供一種數據存儲方法及裝置。
[0006] 本發明提供的數據存儲方法,包括:
[0007] 將待存儲的數據的標識信息對預設數值進行取模運算,所述標識信息為數值,所 述預設數值為存儲節點的個數;
[0008] 將所述待存儲的數據存儲在所述取模運算的結果對應的存儲節點中。
[0009] 本發明提供的數據存儲裝置,包括:
[0010] 運算模塊,用于將待存儲的數據的標識信息對預設數值進行取模運算,所述標識 信息為數值,所述預設數值為存儲節點的個數;
[0011] 存儲模塊,用于將所述待存儲的數據存儲在所述取模運算的結果對應的存儲節點 中。
[0012] 本發明提供的數據存儲方法及裝置,克服了現有技術中由于數據量持續增長而導 致數據查詢減慢的缺陷,使得可以通過取模運算將數據存儲在多個存儲節點中,從而在查 詢數據時可先通過取模運算將待查詢的數據定位在一個存儲節點上,縮小查詢范圍,然后 再在該存儲節點中進一步查詢數據,提高了查詢效率。
【附圖說明】
[0013] 圖1為本發明提供的數據存儲方法的一個實施例的流程圖;
[0014] 圖2為本發明提供的數據存儲方法的另一個實施例的流程圖;
[0015] 圖3為本發明提供的數據存儲裝置的一個實施例的結構示意圖;
[0016] 圖4為本發明提供的數據存儲裝置的另一個實施例的結構示意圖。
【具體實施方式】
[0017] 圖1為本發明提供的數據存儲方法的一個實施例的流程圖,本實施例提供的數據 存儲方法具體可以用于對大型數據庫中的數據進行存儲,但并不以此為限。如圖1所示,該 方法具體可以包括:
[0018] 步驟10、將待存儲的數據的標識信息對預設數值進行取模運算,所述標識信息為 數值,所述預設數值為存儲節點的個數;
[0019] 本發明實施例中,所述待存儲的數據可以是單個數據,也可以是具有某種特定關 系的一組數據,例如,由用戶名、真實姓名、聯系方式等組成的屬于某個用戶的信息數據,本 發明可將所述具有多個內容字段的用戶信息數據作為一個待存儲的數據來考慮,本發明對 數據的類型、結構等均不作限制;所述存儲節點可以是存儲設備,例如存儲器、專用存儲系 統等,也可以是將一個存儲設備中的存儲空間按照一定的方式劃分成的多個存儲空間,例 如按照存儲空間的容量進行平均劃分后得到的多個存儲空間等,本發明對此不作限制。
[0020] 與傳統的將待存儲的數據按照存儲的先后順序依次存儲在一個存儲設備中不同, 本發明實施例中,首先可以為待存儲的數據設置多個存儲節點,確定所述多個存儲節點的 個數以及每個存儲節點的序號,例如第一個存儲節點、第二個存儲節點等。當接收到一個待 存儲的數據(本發明實施例中均指具有某種特定關系的一組數據)時,首先獲取所述待存儲 的數據的標識信息,所述標識信息可以是一個數值,具體的獲取方式可包括自動為所述待 存儲的數據生成一個標識信息,優選地,可根據存儲數據的先后順序為各個待存儲的數據 生成逐漸遞增的標識信息,并將所述標識信息與所述待存儲的數據關聯在一起。可選地,所 述待存儲的數據可包括所述標識信息,相應地,所述獲取方式還可包括從所述待存儲的數 據中提取所述標識信息。
[0021] 獲取所述標識信息后,可將所述標識信息對預設數值進行取模運算,所述預設數 值即為上述預先確定的存儲節點的個數。取模運算就是求余運算,將所述標識信息對所述 預設數值進行取模運算,可得到所述標識信息中的數值除以所述存儲節點的個數后所得的 余數。
[0022] 步驟11、將所述待存儲的數據存儲在所述取模運算的結果對應的存儲節點中。
[0023] 所述取模運算的結果就是步驟10中得到的所述標識信息中的數值除以所述存儲 節點的個數后的余數,可將所述待存儲的數據存儲在所述取模運算的結果對應的存儲節點 中,也就是說,可將所述待存儲的數據存儲在序號為所述余數的存儲節點中,例如,如果所 述取模運算的結果為3,則可將所述待存儲的數據存儲在序號為3的存儲節點中,即存儲在 第三個存儲節點中。
[0024] 可以理解的是,本發明實施例對所述標識信息的獲取方式并不作限制,只要按照 本發明提供的存儲方法可根據所述標識信息將數據分布式地存儲在多個存儲節點中即可。
[0025] 本發明實施例提供的數據存儲方法,克服了現有技術中由于數據量持續增長而導 致數據查詢減慢的缺陷,使得可以通過取模運算將數據存儲在多個存儲節點中,從而在查 詢數據時可先通過取模運算將待查詢的數據定位在一個存儲節點上,縮小查詢范圍,然后 再在該存儲節點中進一步查詢數據,提高了查詢效率。
[0026] 圖2為本發明提供的數據存儲方法的另一個實施例的流程圖,該方法包括:
[0027] 步驟20、生成所述待存儲的數據的所述標識信息,所述標識信息為已存儲的數據 的個數加1 ;
[0028] 步驟21、將待存儲的數據的標識信息對預設數值進行取模運算,所述標識信息為 數值,所述預設數值為存儲節點的個數;
[0029] 步驟22、將所述待存儲的數據存儲在所述取模運算的結果對應的存儲節點中。
[0030] 為使數據可以水平地分布在多個存儲節點中,待存儲的數據的所述標識信息可按 照存儲數據的順序逐漸增大,也就是說,后存儲的數據的所述標識信息要大于之前存儲的 數據的所述標識信息。本實施例中,獲取待存儲的數據的標識信息的方式采用生成所述待 存儲的數據的標識信息的方式,其中,所述標識信息為已存儲的數據的個數加1。具體地,可 記錄所有存儲節點中當前已存儲的數據的個數,當接收到新的待存儲的數據時,則將所述 記錄的當前已存儲的數據的個數加1作為該待存儲的數據的標識信息,生成所述標識信息 后,可將所述標識信息作為一個預先確定的字段加入所述待存儲的數據中,使其與所述待 存儲的數據相關聯。可以理解的是,在完成所述數據的存儲后,可相應地更新所述記錄的當 前已存儲的數據的個數。
[0031] 可選地,可預先在某一個存儲節點上建立一個數據表,用于存放當前已存儲的數 據的標識信息的最大值,即當前最后一個存儲的數據的標識信息,當接收到一個新的待存 儲的數據時,首先獲取所述數據表中的所述最大值,然后在此基礎上進行加1操作,并將所 得的結果作為所述新的待存儲的數據的標識信息,最后將所述標識信息與所述待存儲的數 據相關聯。可以理解的是,在生成新的待存儲的數據的所述標識信息后,可相應地將所述數 據表中的最大值更新為所述生成的新的待存儲的數據的標識信息。
[0032] 下面結合具體的示例對本實施例進行詳細說明。本實施例中,所述待存儲的數據 為具有某種特定關系的一組數據,例如用戶信息數據,包括:用戶名、真實姓名、聯系方式、 電子郵箱。首先可以為數據存儲設置多個存儲節點,例如設置三個存儲節點,其序號分別為 1、2和3,即第一個存儲節點、第二個存儲節點和第三個存儲節點。每個存儲節點中均包括 可存儲上述用戶信息數據的數據表,所述三個存儲節點的數據表結構如表1、表2和表3所 /Jn〇
[0033] 表1第一個存儲節點的數據表
【主權項】
1. 一種數據存儲方法,其特征在于,包括: 將待存儲的數據的標識信息對預設數值進行取模運算,所述標識信息為數值,所述預 設數值為存儲節點的個數; 將所述待存儲的數據存儲在所述取模運算的結果對應的存儲節點中。
2. 根據權利要求1所述的方法,其特征在于,所述標識信息按照存儲數據的順序逐漸 增大。
3. 根據權利要求2所述的方法,其特征在于,在所述將待存儲的數據的標識信息對預 設數值進行取模運算之前,還包括: 生成所述待存儲的數據的所述標識信息,所述標識信息為已存儲的數據的個數加1。
4. 根據權利要求1-3任一所述的方法,其特征在于,在所述將所述待存儲的數據存儲 在所述取模運算的結果對應的存儲節點中之后,還包括: 將待查詢的數據的所述標識信息對所述預設數值進行取模運算; 在所述取模運算的結果對應的存儲節點中查詢所述待查詢的數據。
5. -種數據存儲裝置,其特征在于,包括: 運算模塊,用于將待存儲的數據的標識信息對預設數值進行取模運算,所述標識信息 為數值,所述預設數值為存儲節點的個數; 存儲模塊,用于將所述待存儲的數據存儲在所述取模運算的結果對應的存儲節點中。
6. 根據權利要求5所述的裝置,其特征在于,所述標識信息按照存儲數據的順序逐漸 增大。
7. 根據權利要求6所述的裝置,其特征在于,還包括: 生成模塊,用于生成所述待存儲的數據的所述標識信息,所述標識信息為已存儲的數 據的個數加1。
8. 根據權利要求5-7任一所述的裝置,其特征在于,所述運算模塊還用于,將待查詢的 數據的所述標識信息對所述預設數值進行取模運算; 所述裝置還包括: 查詢模塊,用于在所述取模運算的結果對應的存儲節點中查詢所述待查詢的數據。
【專利摘要】本發明提供一種數據存儲方法及裝置。該方法包括:將待存儲的數據的標識信息對預設數值進行取模運算,所述標識信息為數值,所述預設數值為存儲節點的個數;將所述待存儲的數據存儲在所述取模運算的結果對應的存儲節點中。本發明提供的數據存儲方法及裝置,克服了現有技術中由于數據量持續增長而導致數據查詢減慢的缺陷,使得可以通過取模運算將數據存儲在多個存儲節點中,從而在查詢數據時可先通過取模運算將待查詢的數據定位在一個存儲節點上,縮小查詢范圍,然后再在該存儲節點中進一步查詢數據,提高了查詢效率。
【IPC分類】G06F17-30
【公開號】CN104765754
【申請號】CN201410008394
【發明人】李平
【申請人】北大方正集團有限公司, 北京北大方正電子有限公司
【公開日】2015年7月8日
【申請日】2014年1月8日