一種存儲數(shù)據(jù)的方法及裝置制造方法
【專利摘要】本發(fā)明實施例公開了一種存儲數(shù)據(jù)的方法及裝置,涉及電子信息【技術(shù)領(lǐng)域】,能夠提高查詢效率,從而提高數(shù)據(jù)處理的能力。本發(fā)明的方法包括:根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間;將所述數(shù)值區(qū)間劃分為至少兩個連續(xù)的子區(qū)間;根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,建立各數(shù)據(jù)行與所述至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系;將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊。本發(fā)明適用于一種存儲系統(tǒng)。
【專利說明】一種存儲數(shù)據(jù)的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子信息【技術(shù)領(lǐng)域】,尤其涉及一種存儲數(shù)據(jù)的方法及裝置。
【背景技術(shù)】
[0002]隨著電子信息技術(shù)的發(fā)展,已有多種數(shù)據(jù)庫系統(tǒng)被使用,在數(shù)據(jù)庫中存儲的數(shù)據(jù)也越來越多,大量的存儲數(shù)據(jù)導(dǎo)致數(shù)據(jù)查詢的時間越來越長。
[0003]在現(xiàn)有技術(shù)中,將所需存儲的數(shù)據(jù)集合作為表,并按照分區(qū)存儲的方式進行存儲,所存儲的數(shù)據(jù)的排列順序主要按照數(shù)據(jù)存入的先后順序,例如:
[0004]一張表中包括了某種業(yè)務(wù)在I年內(nèi)的運行數(shù)據(jù),按照月份劃分為12個分區(qū),每一個分區(qū)可以看成是一個數(shù)據(jù)集合,該數(shù)據(jù)集合中包括該分區(qū)中全部的數(shù)據(jù)條目,以便設(shè)備針對數(shù)據(jù)塊執(zhí)行查詢、讀取等處理過程。但是由于分區(qū)中的各條數(shù)據(jù)是按照存入時間排列的,當設(shè)備所需查詢其中一條或多條目標數(shù)據(jù)條目,且查詢并非依據(jù)時間信息時,設(shè)備需要查詢多個數(shù)據(jù)塊才能找到目標數(shù)據(jù)條目。
[0005]通常情況下,數(shù)據(jù)條目的每一條記錄用于對一個對象進行完整的描述,并且根據(jù)數(shù)據(jù)條目的屬性可以將表中的數(shù)據(jù)條目的具體內(nèi)容劃分為多列,其中,列可以用于表示這一類對象所具有的屬性,比如:定義一張表名為employee的表來描述員工這一類對象,同時定義“工號”、“名字”、“年齡”和“性別”這4種屬性來描述員工這類對象。在查詢過程中,所依據(jù)的是數(shù)據(jù)條目的具體內(nèi)容的“工號”列的值,且“工號”列的值與數(shù)據(jù)條目的存入時間或與其他時間信息無關(guān),而設(shè)備所需查詢的是“工號”列的值在范圍[100,200]內(nèi)的數(shù)據(jù)條目。由于數(shù)據(jù)條目按照時間順序排列,導(dǎo)致第一列的值在范圍[100,200]內(nèi)的數(shù)據(jù)條目可能存在于多個分區(qū)中,則設(shè)備需要讀取多個數(shù)據(jù)塊才能夠完成數(shù)據(jù)查詢。
[0006]因此增加了設(shè)備的查詢時間,降低了數(shù)據(jù)處理的能力。若設(shè)備想要通過提高查詢效率來提高數(shù)據(jù)處理的能力,就需要耗費大量系統(tǒng)資源對所有的數(shù)據(jù)條目進行重新排序。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實施例提供一種存儲數(shù)據(jù)的方法及裝置,能夠提高查詢效率,從而提高數(shù)據(jù)處理的能力。
[0008]為達到上述目的,本發(fā)明實施例采用如下技術(shù)方案:
[0009]第一方面,本發(fā)明實施例提供一種存儲數(shù)據(jù)的方法,數(shù)據(jù)表包括指定數(shù)量的數(shù)據(jù)行,每一數(shù)據(jù)行的一部分內(nèi)容處于所述數(shù)據(jù)表的排序聚簇列中,且一個數(shù)據(jù)行的處于所述排序聚簇列中的內(nèi)容對應(yīng)一個排序值,所述方法包括:
[0010]根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間;
[0011]將所述數(shù)值區(qū)間劃分為至少兩個連續(xù)的子區(qū)間;
[0012]根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,建立各數(shù)據(jù)行與所述至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系,其中,一個數(shù)據(jù)行的排序值落在所述一個數(shù)據(jù)行所對應(yīng)的子區(qū)間中;
[0013]將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊。
[0014]結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述將所述數(shù)值區(qū)間劃分為至少兩個連續(xù)的子區(qū)間,包括:
[0015]獲取所述數(shù)值區(qū)間的最大值和最小值,并獲取M行數(shù)據(jù)行的排序值,其中M小于所述指定數(shù)量;
[0016]按照從小到大的順序依次排列所述最小值、所述M行數(shù)據(jù)行的排序值和所述最大值;
[0017]按照排列順序?qū)⑺鰯?shù)值區(qū)間劃分為所述至少兩個連續(xù)的子區(qū)間。
[0018]結(jié)合第一方面,在第一方面的第二種可能的實現(xiàn)方式中,在建立各數(shù)據(jù)行與所述至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系之后,還包括:
[0019]對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行以下流程:
[0020]檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否小于等于第一閾值;
[0021]若是,則將所述一個子區(qū)間與相鄰的子區(qū)間合并。
[0022]結(jié)合第一方面的第二種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,所述將所述一個子區(qū)間與相鄰的子區(qū)間合并,包括:獲取與所述一個子區(qū)間相鄰的兩個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量,并確定所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間;
[0023]將所述一個子區(qū)間與所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間合并。
[0024]結(jié)合第一方面,在第一方面的第四種可能的實現(xiàn)方式中,在建立各數(shù)據(jù)行與所述至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系之后,還包括:
[0025]對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行以下流程:
[0026]檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否大于等于第二閾值;
[0027]若是,則將所述一個子區(qū)間劃分為至少兩個連續(xù)的子區(qū)間;
[0028]根據(jù)所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的排序值,建立所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行與從所述一個子區(qū)間劃分出的至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系。
[0029]第二方面,本發(fā)明實施例提供一種存儲數(shù)據(jù)的裝置,數(shù)據(jù)表包括指定數(shù)量的數(shù)據(jù)行,每一數(shù)據(jù)行的一部分內(nèi)容處于所述數(shù)據(jù)表的排序聚簇列中,且一個數(shù)據(jù)行的處于所述排序聚簇列中的內(nèi)容對應(yīng)一個排序值,所述裝置包括:
[0030]獲取模塊,用于根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間;
[0031]第一處理模塊,用于將所述數(shù)值區(qū)間劃分為至少兩個連續(xù)的子區(qū)間;
[0032]建立模塊,用于根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,建立各數(shù)據(jù)行與所述至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系,其中,一個數(shù)據(jù)行的排序值落在所述一個數(shù)據(jù)行所對應(yīng)的子區(qū)間中;
[0033]第二處理模塊,用于將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊。
[0034]結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述第一處理模塊,包括:
[0035]第一獲取子模塊,用于獲取所述數(shù)值區(qū)間的最大值和最小值,并獲取M行數(shù)據(jù)行的排序值,其中M小于所述指定數(shù)量;
[0036]第一處理子模塊,用于按照從小到大的順序依次排列所述最小值、所述M行數(shù)據(jù)行的排序值和所述最大值;
[0037]第二處理子模塊,用于按照排列順序?qū)⑺鰯?shù)值區(qū)間劃分為所述至少兩個連續(xù)的子區(qū)間。
[0038]結(jié)合第二方面,在第二方面的第二種可能的實現(xiàn)方式中,還包括:
[0039]第三處理模塊,用于對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行以下流程:
[0040]檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否小于等于第一閾值;
[0041]若所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量小于等于第一閾值,則將所述一個子區(qū)間與相鄰的子區(qū)間合并。
[0042]結(jié)合第二方面的第二種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,所述第三處理模塊,包括:
[0043]第二獲取子模塊,用于獲取與所述一個子區(qū)間相鄰的兩個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量,并確定所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間;
[0044]第三處理子模塊,用于將所述一個子區(qū)間與所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間合并。
[0045]結(jié)合第二方面,在第二方面的第四種可能的實現(xiàn)方式中,還包括:
[0046]第四處理模塊,用于對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行以下流程:
[0047]檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否大于等于第二閾值;
[0048]若所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量大于等于第二閾值,則將所述一個子區(qū)間劃分為至少兩個連續(xù)的子區(qū)間;
[0049]根據(jù)所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的排序值,建立所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行與從所述一個子區(qū)間劃分出的至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系。
[0050]本發(fā)明實施例提供的一種存儲數(shù)據(jù)的方法及裝置,根據(jù)指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間并將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再根據(jù)排序值建立各數(shù)據(jù)行與子區(qū)間的對應(yīng)關(guān)系,將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,以便于設(shè)備在數(shù)據(jù)查詢的過程中僅需要查詢一個數(shù)據(jù)塊。相比較于現(xiàn)有技術(shù)中按照數(shù)據(jù)存入的先后順序分區(qū)進行存儲的方案,本發(fā)明實施例可以通過將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,以便于設(shè)備在查詢過程中,在避免耗費大量系統(tǒng)資源對所有的數(shù)據(jù)條目進行重新排序的條件下,減少了設(shè)備的查詢時間,因此提高了查詢效率,從而提高了數(shù)據(jù)處理的能力。
【專利附圖】
【附圖說明】
[0051]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0052]圖1為本發(fā)明實施例提供的一種具體應(yīng)用場景示意圖;
[0053]圖2為本發(fā)明實施例提供的一種存儲數(shù)據(jù)的方法流程圖;
[0054]圖3為本發(fā)明實施例提供的另一種存儲數(shù)據(jù)的方法流程圖;
[0055]圖4為本發(fā)明實施例提供的另一種存儲數(shù)據(jù)的方法流程圖;
[0056]圖5為本發(fā)明實施例提供的另一種存儲數(shù)據(jù)的方法流程圖;
[0057]圖6為本發(fā)明實施例提供的另一種存儲數(shù)據(jù)的方法流程圖;
[0058]圖7為本發(fā)明實施例提供的一種存儲數(shù)據(jù)的裝置的結(jié)構(gòu)示意圖;
[0059]圖8為本發(fā)明實施例提供的另一種存儲數(shù)據(jù)的裝置的結(jié)構(gòu)示意圖;
[0060]圖9為本發(fā)明實施例提供的另一種存儲數(shù)據(jù)的裝置的結(jié)構(gòu)示意圖;
[0061]圖10為本發(fā)明實施例提供的另一種存儲數(shù)據(jù)的裝置的結(jié)構(gòu)示意圖;
[0062]圖11為本發(fā)明實施例提供的另一種存儲數(shù)據(jù)的裝置的結(jié)構(gòu)示意圖;
[0063]圖12為本發(fā)明實施例提供的一種存儲數(shù)據(jù)的設(shè)備的結(jié)構(gòu)示意圖。
【具體實施方式】
[0064]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
[0065]本發(fā)明實施例可以用于一種存儲系統(tǒng),存儲系統(tǒng)中包括至少一個存儲設(shè)備,存儲設(shè)備將數(shù)據(jù)整理成數(shù)據(jù)行并根據(jù)一定數(shù)量的數(shù)據(jù)行形成數(shù)據(jù)表,其中,在該數(shù)據(jù)表中的數(shù)據(jù)是無序存放的。需要說明的是,數(shù)據(jù)表包括指定數(shù)量的數(shù)據(jù)行,每一數(shù)據(jù)行的一部分內(nèi)容處于所述數(shù)據(jù)表的排序聚簇列中,且一個數(shù)據(jù)行的處于所述排序聚簇列中的內(nèi)容對應(yīng)一個排序值。需要說明的是,數(shù)據(jù)可以從存儲設(shè)備上獲取,也可以從其他系統(tǒng)中獲取,比如:備份系統(tǒng),在本發(fā)明實施例中,對于數(shù)據(jù)的具體來源不作限定。
[0066]例如:如圖1所示,在數(shù)據(jù)表中存在多個數(shù)據(jù)簇,且數(shù)據(jù)簇與數(shù)據(jù)簇之間是無序的;在數(shù)據(jù)簇中存在多個數(shù)據(jù)塊,且數(shù)據(jù)塊與數(shù)據(jù)塊之間是無序的;在數(shù)據(jù)塊中存在多行數(shù)據(jù)行,且數(shù)據(jù)行與數(shù)據(jù)行之間是無序的。需要說明的是,當存儲設(shè)備獲取到數(shù)據(jù)并執(zhí)行數(shù)據(jù)存儲時,將數(shù)據(jù)整理成數(shù)據(jù)表、數(shù)據(jù)簇和數(shù)據(jù)塊;在數(shù)據(jù)未存儲在存儲設(shè)備之前,數(shù)據(jù)是無序的,即數(shù)據(jù)的存在形式為一堆無規(guī)則的數(shù)據(jù)行。
[0067]本發(fā)明實施例提供一種存儲數(shù)據(jù)的方法,如圖2所示,包括:
[0068]101、根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間。
[0069]存儲設(shè)備讀取數(shù)據(jù)表中指定數(shù)量的數(shù)據(jù)行,獲取每行數(shù)據(jù)行的排序值,從所有排序值中的獲取排序值的最大值和最小值,將最大值作為數(shù)值區(qū)間的上限值,最小值作為數(shù)值區(qū)間的下限值,從而得到數(shù)值區(qū)間的范圍并獲取該數(shù)值區(qū)間。
[0070]102、將所述數(shù)值區(qū)間劃分為至少兩個連續(xù)的子區(qū)間。
[0071]例如:數(shù)值區(qū)間為[1,6],存儲設(shè)備將數(shù)值區(qū)間劃分成2個連續(xù)的子區(qū)間,分別為[1,3]和(3,6];或者,存儲設(shè)備將數(shù)值區(qū)間劃分成3個連續(xù)的子區(qū)間,分別為[1,2)、[2,3]和(3, 6] ο
[0072]103、根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,建立各數(shù)據(jù)行與所述至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系。
[0073]其中,一個數(shù)據(jù)行的排序值落在所述一個數(shù)據(jù)行所對應(yīng)的子區(qū)間中。
[0074]獲取數(shù)值區(qū)間中的子區(qū)間的上限值和下限值,對每個排序值執(zhí)行如下流程:
[0075]將排序值依次與各個子區(qū)間的上限值和下限值進行比較;當排序值大于某一個子區(qū)間的上限值且小于該子區(qū)間的下限值時,獲取該排序值所在的數(shù)據(jù)行;建立該數(shù)據(jù)行與該子區(qū)間的對應(yīng)關(guān)系。需要說明的是,每一行數(shù)據(jù)行對應(yīng)一個排序值,而每一個排序值可以對應(yīng)一個或多個數(shù)據(jù)行。
[0076]104、將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊。
[0077]存儲設(shè)備分別獲取每一行數(shù)據(jù)行與子區(qū)間的對應(yīng)關(guān)系,并將對應(yīng)于同一個子區(qū)間的數(shù)據(jù)行聚簇后劃分至同一個數(shù)據(jù)塊。
[0078]本發(fā)明實施例提供的一種存儲數(shù)據(jù)的方法,根據(jù)指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間并將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再根據(jù)排序值建立各數(shù)據(jù)行與子區(qū)間的對應(yīng)關(guān)系,將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,以便于設(shè)備在數(shù)據(jù)查詢的過程中僅需要查詢一個數(shù)據(jù)塊。相比較于現(xiàn)有技術(shù)中按照數(shù)據(jù)存入的先后順序分區(qū)進行存儲的方案,本發(fā)明實施例可以通過將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,以便于設(shè)備在查詢過程中,在避免耗費大量系統(tǒng)資源對所有的數(shù)據(jù)條目進行重新排序的條件下,減少了設(shè)備的查詢時間,因此提高了查詢效率,從而提高了數(shù)據(jù)處理的能力。
[0079]本發(fā)明實施例中,在如圖2所示的方式的基礎(chǔ)上,102可以具體實現(xiàn)為如圖3所示的 1021-1023:
[0080]1021、獲取所述數(shù)值區(qū)間的最大值和最小值,并獲取M行數(shù)據(jù)行的排序值。
[0081]其中,M小于所述指定數(shù)量。
[0082]存儲設(shè)備讀取數(shù)據(jù)表中指定數(shù)量的數(shù)據(jù)行,獲取每行數(shù)據(jù)行的排序值,將所有排序值按照從小到大或者從大到小的順序排列,從而得到排序值中的最大值和最小值,并在除最大值和最小值之外的排序值中隨機獲取小于指定數(shù)量的M個排序值,即M行數(shù)據(jù)行的排序值,其中,排序值的最大值和最小值還可以通過其他方法獲取,比如將排序值逐一比較,從而獲得最大值和最小值。
[0083]需要說明的是,數(shù)值區(qū)間的最大值、最小值和M行數(shù)據(jù)行還可以根據(jù)統(tǒng)計信息直接獲取,或者將獲取的最大值、最小值和隨機獲取的M行數(shù)據(jù)行根據(jù)統(tǒng)計信息進行調(diào)整,其中,統(tǒng)計信息至少包括了指定數(shù)量的數(shù)據(jù)行的分布情況,統(tǒng)計信息的表示形式可以為柱狀圖,折線圖等其他表示形式。
[0084]1022、按照從小到大的順序依次排列所述最小值、所述M行數(shù)據(jù)行的排序值和所述最大值。
[0085]需要說明的是,還可以將最小值、M行數(shù)據(jù)行的排序值和最大值按照從大到小的順序依次排列,或者按照一定預(yù)設(shè)規(guī)則進行排列,比如:按照排序值所攜帶的標識信息的字節(jié)數(shù)進行排序。
[0086]1023、按照排列順序?qū)⑺鰯?shù)值區(qū)間劃分為所述至少兩個連續(xù)的子區(qū)間。
[0087]將上述1022中按照從小到大的順序依次排列的M行數(shù)據(jù)行的排序值作為分割點,將數(shù)值區(qū)間劃分為至少兩個連續(xù)的子區(qū)間,其中,每一個分割點作為前一個子區(qū)間的下限值和后一個子區(qū)間的上限值,按照從小到大的順序,第一個子區(qū)間的上限值為數(shù)值區(qū)間的最小值,最后一個子區(qū)間的下限值為數(shù)值區(qū)間的最大值。
[0088]本發(fā)明實施例提供的一種存儲數(shù)據(jù)的方法,根據(jù)指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間的最大值、最小值和M行數(shù)據(jù)行的排序值,并按照從小到大的順序依次排列,將數(shù)值區(qū)間按照排列順序劃分成至少兩個連續(xù)的子區(qū)間,再根據(jù)排序值建立各數(shù)據(jù)行與子區(qū)間的對應(yīng)關(guān)系,將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,以便于設(shè)備在數(shù)據(jù)查詢的過程中僅需要查詢一個數(shù)據(jù)塊。相比較于現(xiàn)有技術(shù)中按照數(shù)據(jù)存入的先后順序分區(qū)進行存儲的方案,本發(fā)明實施例可以通過將數(shù)值區(qū)間的最大值、最小值和M行數(shù)據(jù)行的排序值,按照從小到大的順序依次排列,并將數(shù)值區(qū)間按照排列順序劃分成至少兩個連續(xù)的子區(qū)間,再將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,以便于設(shè)備在查詢過程中,在避免耗費大量系統(tǒng)資源對所有的數(shù)據(jù)條目進行重新排序的條件下,減少了設(shè)備的查詢時間,由于子區(qū)間是按照排序值從小到大的順序依次排列的,降低了設(shè)備在數(shù)據(jù)查找過程中的難度,因此提高了查詢效率,從而提高了數(shù)據(jù)處理的能力。
[0089]本發(fā)明實施例中,在如圖2所示的方式的基礎(chǔ)上,在103與104之間,可以對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行如圖4所示的105-106:
[0090]105、檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否小于等于第一閾值。
[0091]106、若所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量小于等于第一閾值,則將所述一個子區(qū)間與相鄰的子區(qū)間合并。
[0092]若所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量大于第一閾值,則所述一個子區(qū)間不作處理。
[0093]存儲設(shè)備可以通過檢測子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量與第一閾值的關(guān)系來判斷該子區(qū)間是否需要與相鄰的子區(qū)間合并,當一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量小于等于第一閾值時,則分別獲取一個子區(qū)間與相鄰的子區(qū)間的作為邊界值的上限值和下限值,并獲取兩個子區(qū)間與其他子區(qū)間相鄰的邊界值作為合并后子區(qū)間的上限值和下限值,比如:一個子區(qū)間[1,2]與相鄰的子區(qū)間(2,9]合并,則合并后的子區(qū)間為[1,9],其中,一個子區(qū)間的下限值作為合并后的子區(qū)間的下限值,相鄰的子區(qū)間的上限值作為合并后的子區(qū)間的上限值。
[0094]其中,第一閾值可以由用戶預(yù)先設(shè)定,還可以由存儲設(shè)備根據(jù)歷史狀態(tài)自動設(shè)定并調(diào)整;歷史狀態(tài)可以包括上一次執(zhí)行數(shù)據(jù)存儲時子區(qū)間對應(yīng)的數(shù)據(jù)行的平均數(shù)量,或者包括其他存儲設(shè)備上由用戶預(yù)先設(shè)定的第一閾值等。
[0095]需要說明的是,當多個相鄰子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量遠遠少于其他子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量時,存儲設(shè)備可以將多個相鄰子區(qū)間與多個相鄰子區(qū)間相鄰的子區(qū)間合并。
[0096]本發(fā)明實施例提供的一種存儲數(shù)據(jù)的方法,根據(jù)指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間并將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再根據(jù)排序值建立各數(shù)據(jù)行與子區(qū)間的對應(yīng)關(guān)系,將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,并將數(shù)據(jù)行的數(shù)量小于等于第一閾值的子區(qū)間與相鄰的子區(qū)間合并,以便于設(shè)備在數(shù)據(jù)查詢的過程中僅需要查詢一個數(shù)據(jù)塊。相比較于現(xiàn)有技術(shù)中按照數(shù)據(jù)存入的先后順序分區(qū)進行存儲的方案,本發(fā)明實施例可以通過將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,以便于設(shè)備在查詢過程中,在避免耗費大量系統(tǒng)資源對所有的數(shù)據(jù)條目進行重新排序的條件下,減少了設(shè)備的查詢時間,并將數(shù)據(jù)行的數(shù)量小于等于第一閾值的子區(qū)間與相鄰的子區(qū)間合并,減少了設(shè)備在查找與所要查詢的數(shù)據(jù)行對應(yīng)的子區(qū)間的數(shù)量,因此提高了查詢效率,從而提高了數(shù)據(jù)處理的能力。
[0097]本發(fā)明實施例中,在如圖4所示的方式的基礎(chǔ)上,106可以具體實現(xiàn)為如圖5所示的 1061-1062:
[0098]1061、獲取與所述一個子區(qū)間相鄰的兩個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量,并確定所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間。
[0099]1062、將所述一個子區(qū)間與所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間合并。
[0100]終端設(shè)備分別獲取與一個子區(qū)間相鄰的兩個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量,將獲取的對應(yīng)的數(shù)據(jù)行的數(shù)量進行比較,確定對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間,并將該一個子區(qū)間與對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間合并。
[0101]需要說明的是,當兩個與該一個子區(qū)間相鄰的兩個子區(qū)間分別所對應(yīng)的數(shù)據(jù)行的數(shù)量相同時,可以將該一個子區(qū)間與相鄰的兩個子區(qū)間中的任意一個子區(qū)間合并。
[0102]本發(fā)明實施例提供的一種存儲數(shù)據(jù)的方法,根據(jù)指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間并將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再根據(jù)排序值建立各數(shù)據(jù)行與子區(qū)間的對應(yīng)關(guān)系,將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,并將數(shù)據(jù)行的數(shù)量小于等于第一閾值的子區(qū)間與相鄰的對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間合并,以便于設(shè)備在數(shù)據(jù)查詢的過程中僅需要查詢一個數(shù)據(jù)塊。相比較于現(xiàn)有技術(shù)中按照數(shù)據(jù)存入的先后順序分區(qū)進行存儲的方案,本發(fā)明實施例可以通過將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,以便于設(shè)備在查詢過程中,在避免耗費大量系統(tǒng)資源對所有的數(shù)據(jù)條目進行重新排序的條件下,減少了設(shè)備的查詢時間,并將數(shù)據(jù)行的數(shù)量小于等于第一閾值的子區(qū)間與相鄰的對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間合并,減少了設(shè)備在查找與所要查詢的數(shù)據(jù)行對應(yīng)的子區(qū)間的數(shù)量,因此提高了查詢效率,從而提高了數(shù)據(jù)處理的能力。
[0103]本發(fā)明實施例中,在如圖2所示的方式的基礎(chǔ)上,在103與104之間,還可以對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行如圖6所示的107-109:
[0104]107、檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否大于等于第二閾值。
[0105]108、若所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量大于等于第二閾值,則將所述一個子區(qū)間劃分為至少兩個連續(xù)的子區(qū)間。
[0106]109、根據(jù)所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的排序值,建立所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行與從所述一個子區(qū)間劃分出的至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系。
[0107]若所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量小于第二閾值,則所述一個子區(qū)間不作處理。
[0108]存儲設(shè)備可以通過檢測子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量與第二閾值的關(guān)系來判斷該子區(qū)間是否需要劃分為至少兩個連續(xù)的子區(qū)間,當一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量大于等于第二閾值時,則獲取該子區(qū)間的作為邊界值的上限值和下限值,并將該子區(qū)間劃分為至少兩個連續(xù)的子區(qū)間,根據(jù)該子區(qū)間對應(yīng)的數(shù)據(jù)行的排序值,建立該子區(qū)間對應(yīng)的數(shù)據(jù)行與從該子區(qū)間劃分出的至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系,比如:一個子區(qū)間[1,100],則劃分后的子區(qū)間可以為[1,30)、[30,65]和(65,100],其中,該子區(qū)間的下限值作為劃分后的一個子區(qū)間的下限值,該子區(qū)間的上限值作為劃分后的另個子區(qū)間的上限值。
[0109]其中,第二閾值可以由用戶預(yù)先設(shè)定,還可以由存儲設(shè)備根據(jù)歷史狀態(tài)自動設(shè)定并調(diào)整;歷史狀態(tài)可以包括上一次執(zhí)行數(shù)據(jù)存儲時子區(qū)間對應(yīng)的數(shù)據(jù)行的平均數(shù)量,或者包括其他存儲設(shè)備上由用戶預(yù)先設(shè)定的第二閾值等。
[0110]需要說明的是,存儲設(shè)備統(tǒng)計多個相鄰子區(qū)間中的每一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量,并將該每一個子區(qū)間的數(shù)據(jù)行的數(shù)量相加得到該多個相鄰子區(qū)間的總數(shù)據(jù)行的數(shù)量,當該多個相鄰子區(qū)間對應(yīng)的總數(shù)據(jù)行的數(shù)量大于第一閾值且小于第二閾值時,可以合并該多個相鄰子區(qū)間,并將得到的新的子區(qū)間重新劃分成至少兩個相鄰的子區(qū)間。
[0111]在本實施例中,可以在存儲設(shè)備需要存儲的數(shù)據(jù)表中的數(shù)據(jù)行的數(shù)量達到預(yù)先設(shè)定的數(shù)據(jù)行的數(shù)量時,將數(shù)據(jù)表中的數(shù)據(jù)行分別對應(yīng)各個子區(qū)間,經(jīng)過合并、劃分等過程使存儲的數(shù)據(jù)無序存儲于數(shù)據(jù)塊中,而數(shù)據(jù)塊與數(shù)據(jù)塊之間則按照一定順序排列。
[0112]存儲設(shè)備獲取該各個數(shù)據(jù)行中的排序值,根據(jù)排序值中的最大值和最小值得到數(shù)值區(qū)間,再根據(jù)統(tǒng)計信息確定除了最大值和最小值以外的N*3-l個采樣點,其中N為一定數(shù)量數(shù)據(jù)行將要被劃分的數(shù)據(jù)塊個數(shù),將最小值、N*3_l個采樣點和最大值按照從小到大的順序依次排列,將數(shù)值區(qū)間劃分成N*3個連續(xù)的子區(qū)間,并將最小值、最大值和N*3_l個采樣點所在的數(shù)據(jù)行分別對應(yīng)到各個子區(qū)間,再將對應(yīng)于同一個子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,從而得到N*3個數(shù)據(jù)塊,將N*3個數(shù)據(jù)塊中每相鄰3個數(shù)據(jù)塊合并得到N個相鄰的數(shù)據(jù)塊。
[0113]可選的,可以根據(jù)預(yù)先設(shè)定的閾值觸發(fā)執(zhí)行101-109的方法流程,例如:可以在存儲設(shè)備中設(shè)置緩存區(qū)域,并將需要進行處理的數(shù)據(jù)行先存入緩存區(qū)域中,當緩存區(qū)域中的數(shù)據(jù)行的數(shù)量達到了預(yù)先設(shè)定的閾值,則執(zhí)行101-109的方法流程,對數(shù)據(jù)行進行處理并得到數(shù)據(jù)塊。
[0114]需要說明的是,若各個數(shù)據(jù)塊的數(shù)據(jù)量,即數(shù)據(jù)塊中數(shù)據(jù)行的數(shù)量大致相等,則按照當前的排列順序執(zhí)行數(shù)據(jù)存儲;若存在偏斜較大的數(shù)據(jù)塊,即數(shù)據(jù)塊中數(shù)據(jù)行的數(shù)量遠遠大于相鄰數(shù)據(jù)塊中數(shù)據(jù)行的數(shù)量,則將該數(shù)據(jù)塊進一步劃分成多個相鄰的數(shù)據(jù)塊,或者數(shù)據(jù)塊中數(shù)據(jù)行的數(shù)量遠遠小于相鄰數(shù)據(jù)塊中數(shù)據(jù)行的數(shù)量,則將該數(shù)據(jù)塊與相鄰的數(shù)據(jù)塊合并。
[0115]本發(fā)明實施例提供的一種存儲數(shù)據(jù)的方法,根據(jù)指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間并將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再根據(jù)排序值建立各數(shù)據(jù)行與子區(qū)間的對應(yīng)關(guān)系,將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,并將數(shù)據(jù)行的數(shù)量大于等于第二閾值的子區(qū)間劃分為至少兩個連續(xù)的子區(qū)間,以便于設(shè)備在數(shù)據(jù)查詢的過程中僅需要查詢一個數(shù)據(jù)塊。相比較于現(xiàn)有技術(shù)中按照數(shù)據(jù)存入的先后順序分區(qū)進行存儲的方案,本發(fā)明實施例可以通過將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,以便于設(shè)備在查詢過程中,在避免耗費大量系統(tǒng)資源對所有的數(shù)據(jù)條目進行重新排序的條件下,減少了設(shè)備的查詢時間,并將數(shù)據(jù)行的數(shù)量大于等于第二閾值的子區(qū)間劃分為至少兩個連續(xù)的子區(qū)間,當設(shè)備在所要查詢的數(shù)據(jù)行對應(yīng)的子區(qū)間中查找該數(shù)據(jù)行時,減少了該子區(qū)間中數(shù)據(jù)行的數(shù)量,因此提高了查詢效率,從而提高了數(shù)據(jù)處理的能力。
[0116]本發(fā)明實施例提供一種存儲數(shù)據(jù)的裝置20,數(shù)據(jù)表包括指定數(shù)量的數(shù)據(jù)行,每一數(shù)據(jù)行的一部分內(nèi)容處于所述數(shù)據(jù)表的排序聚簇列中,且一個數(shù)據(jù)行的處于所述排序聚簇列中的內(nèi)容對應(yīng)一個排序值,如圖7所示,所述裝置20可以包括:
[0117]獲取模塊21,用于根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間。
[0118]第一處理模塊22,用于將所述數(shù)值區(qū)間劃分為至少兩個連續(xù)的子區(qū)間。
[0119]建立模塊23,用于根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,建立各數(shù)據(jù)行與所述至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系,其中,一個數(shù)據(jù)行的排序值落在所述一個數(shù)據(jù)行所對應(yīng)的子區(qū)間中。
[0120]第二處理模塊24,用于將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊。
[0121]在如圖7所示的基礎(chǔ)上,如圖8所示,所述第一處理模塊22可以包括:
[0122]第一獲取子模塊221,用于獲取所述數(shù)值區(qū)間的最大值和最小值,并獲取M行數(shù)據(jù)行的排序值,其中M小于所述指定數(shù)量。
[0123]第一處理子模塊222,用于按照從小到大的順序依次排列所述最小值、所述M行數(shù)據(jù)行的排序值和所述最大值。
[0124]第二處理子模塊223,用于按照排列順序?qū)⑺鰯?shù)值區(qū)間劃分為所述至少兩個連續(xù)的子區(qū)間。
[0125]在如圖7所示的基礎(chǔ)上,如圖9所示,所述裝置20還可以包括:
[0126]第三處理模塊25,用于對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行以下流程:
[0127]檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否小于等于第一閾值;
[0128]若所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量小于等于第一閾值,則將所述一個子區(qū)間與相鄰的子區(qū)間合并。
[0129]在如圖9所示的基礎(chǔ)上,如圖10所示,所述第三處理模塊25可以包括:
[0130]第二獲取子模塊251,用于獲取與所述一個子區(qū)間相鄰的兩個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量,并確定所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間。
[0131]第三處理子模塊252,用于將所述一個子區(qū)間與所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間合并。
[0132]在如圖7所示的基礎(chǔ)上,如圖11所示,裝置20還可以包括:
[0133]第四處理模塊26,用于對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行以下流程:
[0134]檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否大于等于第二閾值;
[0135]若所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量大于等于第二閾值,則將所述一個子區(qū)間劃分為至少兩個連續(xù)的子區(qū)間;
[0136]根據(jù)所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的排序值,建立所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行與從所述一個子區(qū)間劃分出的至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系。
[0137]本發(fā)明實施例提供的一種存儲數(shù)據(jù)的裝置,根據(jù)指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間并將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再根據(jù)排序值建立各數(shù)據(jù)行與子區(qū)間的對應(yīng)關(guān)系,將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,以便于設(shè)備在數(shù)據(jù)查詢的過程中僅需要查詢一個數(shù)據(jù)塊。相比較于現(xiàn)有技術(shù)中按照數(shù)據(jù)存入的先后順序分區(qū)進行存儲的方案,本發(fā)明實施例可以通過將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,以便于設(shè)備在查詢過程中,在避免耗費大量系統(tǒng)資源對所有的數(shù)據(jù)條目進行重新排序的條件下,減少了設(shè)備的查詢時間,因此提高了查詢效率,從而提高了數(shù)據(jù)處理的能力。
[0138]本發(fā)明實施例提供了一種存儲數(shù)據(jù)的設(shè)備30,如圖12所示,至少包括:處理器301、網(wǎng)絡(luò)接口 302、存儲器303和通信總線304 ;所述通信總線304用于實現(xiàn)所述處理器301、所述網(wǎng)絡(luò)接口 302和所述存儲器303之間的連接通信;所述存儲器303,用于存儲所述設(shè)備30在運行過程中所涉及的數(shù)據(jù);可選的,還包含用戶接口 305,包括顯示器,鍵盤或者點擊設(shè)備(例如鼠標,軌跡球(trackball),觸感板或者觸感顯示屏)。存儲器303可能包含高速RAM存儲器,也可能還包括非不穩(wěn)定的存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器303可選的可以包含至少一個位于遠離前述處理器301的存儲裝置;其中,數(shù)據(jù)表包括指定數(shù)量的數(shù)據(jù)行,每一數(shù)據(jù)行的一部分內(nèi)容處于所述數(shù)據(jù)表的排序聚簇列中,且一個數(shù)據(jù)行的處于所述排序聚簇列中的內(nèi)容對應(yīng)一個排序值。
[0139]在一些實施方式中,存儲器303存儲了如下的元素,可執(zhí)行模塊或者數(shù)據(jù)結(jié)構(gòu),或者他們的子集,或者他們的擴展集:
[0140]其中操作業(yè)務(wù)系統(tǒng)3031,包含各種業(yè)務(wù)系統(tǒng)程序,用于實現(xiàn)各種基礎(chǔ)業(yè)務(wù)以及處理基于硬件的任務(wù);應(yīng)用程序3032,包含各種應(yīng)用程序,用于實現(xiàn)各種應(yīng)用業(yè)務(wù)。
[0141]在本實施例中,所述處理器301,用于根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間。
[0142]所述處理器301,還用于將所述數(shù)值區(qū)間劃分為至少兩個連續(xù)的子區(qū)間。
[0143]所述處理器301,還用于根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,建立各數(shù)據(jù)行與所述至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系,其中,一個數(shù)據(jù)行的排序值落在所述一個數(shù)據(jù)行所對應(yīng)的子區(qū)間中。
[0144]所述處理器301,還用于將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊。
[0145]在本實施例中,所述處理器301,具體用于:
[0146]獲取所述數(shù)值區(qū)間的最大值和最小值,并獲取M行數(shù)據(jù)行的排序值,其中M小于所述指定數(shù)量;
[0147]按照從小到大的順序依次排列所述最小值、所述M行數(shù)據(jù)行的排序值和所述最大值;
[0148]按照排列順序?qū)⑺鰯?shù)值區(qū)間劃分為所述至少兩個連續(xù)的子區(qū)間。
[0149]在本實施例中,所述處理器301,還用于對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行以下流程:
[0150]檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否小于等于第一閾值;
[0151]若所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量小于等于第一閾值,則將所述一個子區(qū)間與相鄰的子區(qū)間合并。
[0152]在本實施例中,所述處理器301,具體用于:
[0153]獲取與所述一個子區(qū)間相鄰的兩個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量,并確定所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間;
[0154]將所述一個子區(qū)間與所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間合并。
[0155]在本實施例中,所述處理器301,還用于對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行以下流程:
[0156]檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否大于等于第二閾值;
[0157]若所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量大于等于第二閾值,則將所述一個子區(qū)間劃分為至少兩個連續(xù)的子區(qū)間;
[0158]根據(jù)所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的排序值,建立所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行與從所述一個子區(qū)間劃分出的至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系。
[0159]本發(fā)明實施例提供的一種存儲數(shù)據(jù)的設(shè)備,根據(jù)指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間并將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再根據(jù)排序值建立各數(shù)據(jù)行與子區(qū)間的對應(yīng)關(guān)系,將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,以便于設(shè)備在數(shù)據(jù)查詢的過程中僅需要查詢一個數(shù)據(jù)塊。相比較于現(xiàn)有技術(shù)中按照數(shù)據(jù)存入的先后順序分區(qū)進行存儲的方案,本發(fā)明實施例可以通過將數(shù)值區(qū)間劃分成至少兩個連續(xù)的子區(qū)間,再將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊,以便于設(shè)備在查詢過程中,在避免耗費大量系統(tǒng)資源對所有的數(shù)據(jù)條目進行重新排序的條件下,減少了設(shè)備的查詢時間,因此提高了查詢效率,從而提高了數(shù)據(jù)處理的能力。
[0160]本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于設(shè)備實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0161 ] 本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random AccessMemory, RAM)等。
[0162] 以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準。
【權(quán)利要求】
1.一種存儲數(shù)據(jù)的方法,其特征在于,數(shù)據(jù)表包括指定數(shù)量的數(shù)據(jù)行,每一數(shù)據(jù)行的一部分內(nèi)容處于所述數(shù)據(jù)表的排序聚簇列中,且一個數(shù)據(jù)行的處于所述排序聚簇列中的內(nèi)容對應(yīng)一個排序值,所述方法包括: 根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間; 將所述數(shù)值區(qū)間劃分為至少兩個連續(xù)的子區(qū)間; 根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,建立各數(shù)據(jù)行與所述至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系,其中,一個數(shù)據(jù)行的排序值落在所述一個數(shù)據(jù)行所對應(yīng)的子區(qū)間中; 將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述數(shù)值區(qū)間劃分為至少兩個連續(xù)的子區(qū)間,包括: 獲取所述數(shù)值區(qū)間的最大值和最小值,并獲取Μ行數(shù)據(jù)行的排序值,其中Μ小于所述指定數(shù)量; 按照從小到大的順序依次排列所述最小值、所述Μ行數(shù)據(jù)行的排序值和所述最大值; 按照排列順序?qū)⑺鰯?shù)值區(qū)間劃分為所述至少兩個連續(xù)的子區(qū)間。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在建立各數(shù)據(jù)行與所述至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系之后,還包括: 對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行以下流程: 檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否小于等于第一閾值; 若是,則將所述一個子區(qū)間與相鄰的子區(qū)間合并。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述將所述一個子區(qū)間與相鄰的子區(qū)間合并,包括:獲取與所述一個子區(qū)間相鄰的兩個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量,并確定所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間; 將所述一個子區(qū)間與所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間合并。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,在建立各數(shù)據(jù)行與所述至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系之后,還包括: 對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行以下流程: 檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否大于等于第二閾值; 若是,則將所述一個子區(qū)間劃分為至少兩個連續(xù)的子區(qū)間; 根據(jù)所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的排序值,建立所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行與從所述一個子區(qū)間劃分出的至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系。
6.一種存儲數(shù)據(jù)的裝置,其特征在于,數(shù)據(jù)表包括指定數(shù)量的數(shù)據(jù)行,每一數(shù)據(jù)行的一部分內(nèi)容處于所述數(shù)據(jù)表的排序聚簇列中,且一個數(shù)據(jù)行的處于所述排序聚簇列中的內(nèi)容對應(yīng)一個排序值,所述裝置包括: 獲取模塊,用于根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,獲取數(shù)值區(qū)間; 第一處理模塊,用于將所述數(shù)值區(qū)間劃分為至少兩個連續(xù)的子區(qū)間; 建立模塊,用于根據(jù)所述指定數(shù)量的數(shù)據(jù)行的排序值,建立各數(shù)據(jù)行與所述至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系,其中,一個數(shù)據(jù)行的排序值落在所述一個數(shù)據(jù)行所對應(yīng)的子區(qū)間中; 第二處理模塊,用于將對應(yīng)于相同子區(qū)間的數(shù)據(jù)行劃分至同一個數(shù)據(jù)塊。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一處理模塊,包括: 第一獲取子模塊,用于獲取所述數(shù)值區(qū)間的最大值和最小值,并獲取M行數(shù)據(jù)行的排序值,其中M小于所述指定數(shù)量; 第一處理子模塊,用于按照從小到大的順序依次排列所述最小值、所述M行數(shù)據(jù)行的排序值和所述最大值; 第二處理子模塊,用于按照排列順序?qū)⑺鰯?shù)值區(qū)間劃分為所述至少兩個連續(xù)的子區(qū)間。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: 第三處理模塊,用于對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行以下流程: 檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否小于等于第一閾值; 若所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量小于等于第一閾值,則將所述一個子區(qū)間與相鄰的子區(qū)間合并。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第三處理模塊,包括: 第二獲取子模塊,用于獲取與所述一個子區(qū)間相鄰的兩個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量,并確定所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間; 第三處理子模塊,用于將所述一個子區(qū)間與所對應(yīng)的數(shù)據(jù)行的數(shù)量最小的相鄰子區(qū)間合并。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: 第四處理模塊,用于對于所述至少兩個連續(xù)的子區(qū)間中的一個子區(qū)間,執(zhí)行以下流程: 檢測所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量是否大于等于第二閾值; 若所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的數(shù)量大于等于第二閾值,則將所述一個子區(qū)間劃分為至少兩個連續(xù)的子區(qū)間; 根據(jù)所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行的排序值,建立所述一個子區(qū)間對應(yīng)的數(shù)據(jù)行與從所述一個子區(qū)間劃分出的至少兩個連續(xù)的子區(qū)間的對應(yīng)關(guān)系。
【文檔編號】G06F12/02GK104461920SQ201410749055
【公開日】2015年3月25日 申請日期:2014年12月9日 優(yōu)先權(quán)日:2014年12月9日
【發(fā)明者】嚴龍, 董亞輝, 黃海燕 申請人:杭州華為數(shù)字技術(shù)有限公司