一種聚簇存儲方法及裝置制造方法【專利摘要】本發(fā)明實施例提供一種聚簇存儲方法及裝置,涉及計算機【
技術領域:
】,能夠在對數(shù)據(jù)裝載性能和數(shù)據(jù)更新性能影響較小的同時,提高數(shù)據(jù)查詢性能和數(shù)據(jù)壓縮效率。該方法包括:將待存儲的第一數(shù)據(jù)逐行緩存至數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存中;確定第一排序列,第一排序列用于對本地內(nèi)存中已緩存的數(shù)據(jù)進行排序;若本地內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)第一排序列對第二數(shù)據(jù)進行排序,第二數(shù)據(jù)為第一數(shù)據(jù)中的已緩存至本地內(nèi)存中的數(shù)據(jù);將排序后的第二數(shù)據(jù)聚簇存儲至數(shù)據(jù)庫系統(tǒng)中的存儲介質中。【專利說明】一種聚族存儲方法及裝置【
技術領域:
】[0001]本發(fā)明涉及計算機【
技術領域:
】,尤其涉及一種聚簇存儲方法及裝置?!?br>背景技術:
】[0002]在數(shù)據(jù)庫中,一般采用數(shù)據(jù)表存儲數(shù)據(jù),常見的數(shù)據(jù)表存儲結構有三種,分別為堆表(HeapTable)、索引組織表(IndexOrganizationTable,IOT)和聚族表(ClusterTable)。[0003]現(xiàn)有技術中,采用堆表在存儲介質中存儲數(shù)據(jù)時,由于每行數(shù)據(jù)均是按照數(shù)據(jù)插入的自然順序無序存儲的,因此,對數(shù)據(jù)裝載性能和數(shù)據(jù)更新性能影響較小。進一步地,采用堆表在存儲介質中存儲數(shù)據(jù)后,若需在該堆表的數(shù)據(jù)中查詢某個數(shù)據(jù),則需從堆表的第一行開始逐行進行對比,直到查找到該某個數(shù)據(jù)。[0004]然而,采用堆表在存儲介質中存儲數(shù)據(jù)時,由于數(shù)據(jù)為無序存儲的,且在堆表中查詢數(shù)據(jù)時,需從堆表的第一行開始逐行進行對比,因此,雖然對數(shù)據(jù)裝載性能和數(shù)據(jù)更新性能的影響較小,但是數(shù)據(jù)壓縮比和數(shù)據(jù)查詢性能較低。【
發(fā)明內(nèi)容】[0005]本發(fā)明的實施例提供一種聚簇存儲方法及裝置,能夠在對數(shù)據(jù)裝載性能和數(shù)據(jù)更新性能影響較小的同時,提高數(shù)據(jù)查詢性能和數(shù)據(jù)壓縮效率。[0006]本發(fā)明的實施例采用如下技術方案:[0007]第一方面,本發(fā)明實施例提供一種聚簇存儲方法,應用于數(shù)據(jù)庫系統(tǒng)中,包括:[0008]將待存儲的第一數(shù)據(jù)逐行緩存至所述數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存中;[0009]確定第一排序列,所述第一排序列用于對所述本地內(nèi)存中已緩存的數(shù)據(jù)進行排序;[0010]若所述本地內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序,所述第二數(shù)據(jù)為所述第一數(shù)據(jù)中的已緩存至所述本地內(nèi)存中的數(shù)據(jù);[0011]將排序后的所述第二數(shù)據(jù)聚簇存儲至所述數(shù)據(jù)庫系統(tǒng)中的存儲介質中。[0012]在第一方面的第一種可能的實現(xiàn)方式中,[0013]所述預設條件用于表征所述本地內(nèi)存中已緩存的第二數(shù)據(jù)的數(shù)據(jù)量與所述本地內(nèi)存允許存儲的數(shù)據(jù)量之間的關系。[0014]結合前述的第一方面或第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述預設條件為所述第二數(shù)據(jù)的行數(shù)大于或等于第一預設閾值,[0015]其中,所述若所述本地內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序,具體包括:[0016]若所述第二數(shù)據(jù)的行數(shù)大于或等于所述第一預設閾值,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序。[0017]結合前述的第一方面或第一方面的第一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述預設條件為所述第二數(shù)據(jù)占用所述本地內(nèi)存的大小大于或等于第二預設閾值,[0018]其中,所述若所述本地內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序,具體包括:[0019]若所述第二數(shù)據(jù)占用所述本地內(nèi)存的大小大于或等于所述第二預設閾值,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序。[0020]結合前述的第一方面或第一方面的第一種可能的實現(xiàn)方式至第三種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序,具體包括:[0021]根據(jù)所述第一排序列的數(shù)值大小或所述第一排序列的數(shù)值的哈希值大小對所述第二數(shù)據(jù)進行排序。[0022]結合前述的第一方面或第一方面的第一種可能的實現(xiàn)方式至第四種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述將排序后的所述第二數(shù)據(jù)聚簇存儲至所述數(shù)據(jù)庫系統(tǒng)中的存儲介質中,具體包括:[0023]將排序后的所述第二數(shù)據(jù)聚簇存儲至所述存儲介質中的空閑物理塊中,所述空閑物理塊為除第三數(shù)據(jù)占用的物理塊之外的物理塊,所述第三數(shù)據(jù)為所述第一數(shù)據(jù)中在所述第二數(shù)據(jù)之前已聚簇存儲至所述存儲介質中的數(shù)據(jù)。[0024]結合前述的第一方面或第一方面的第一種可能的實現(xiàn)方式至第五種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,[0025]所述第一排序列包括物理列和表達式中的至少一個。[0026]結合前述的第一方面或第一方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第七種可能的實現(xiàn)方式中,在所述第一數(shù)據(jù)全部存儲至所述存儲介質中之后,所述方法還包括:[0027]確定查詢列;[0028]若所述查詢列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作。[0029]結合第一方面的第七種可能的實現(xiàn)方式,在第八種可能的實現(xiàn)方式中,所述確定查詢列之后,根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作之前,所述方法還包括:[0030]將所述存儲介質中存儲的所述第一數(shù)據(jù)讀入所述本地內(nèi)存中;[0031]其中,所述根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作,具體包括:[0032]根據(jù)所述第一個排序列,在所述本地內(nèi)存中采用二分查找方式對所述第一數(shù)據(jù)的一個或多個數(shù)據(jù)頁中的每個數(shù)據(jù)頁進行查詢操作。[0033]結合前述的第一方面或第一方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第九種可能的實現(xiàn)方式中,在所述第一數(shù)據(jù)全部存儲至所述存儲介質中之后,所述方法還包括:[0034]確定第二排序列;[0035]若所述第二排序列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作。[0036]結合第一方面的第九種可能的實現(xiàn)方式,在第十種可能的實現(xiàn)方式中,所述確定第二排序列之后,根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作之前,所述方法還包括:[0037]將所述存儲介質中存儲的所述第一數(shù)據(jù)讀入所述本地內(nèi)存中;[0038]其中,所述根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作,具體包括:[0039]根據(jù)所述第一個排序列,在所述本地內(nèi)存中對所述第一數(shù)據(jù)進行歸并排序。[0040]結合前述的第一方面或第一方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第十一種可能的實現(xiàn)方式中,在所述第一數(shù)據(jù)全部存儲至所述存儲介質中之后,所述方法還包括:[0041]確定聚合列;[0042]若所述聚合列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作,所述聚合操作為在所述第一數(shù)據(jù)中查找最大值或最小值的操作。[0043]結合第一方面的第十一種可能的實現(xiàn)方式,在第十二種可能的實現(xiàn)方式中,所述確定聚合列之后,根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作之前,所述方法還包括:[0044]將所述存儲介質中存儲的所述第一數(shù)據(jù)讀入所述本地內(nèi)存中;[0045]其中,所述根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作,具體包括:[0046]根據(jù)所述第一個排序列,在所述本地內(nèi)存中確定所述第一數(shù)據(jù)的一個或多個數(shù)據(jù)頁中的每個數(shù)據(jù)頁中的最大值或最小值;[0047]依次比較所述每個數(shù)據(jù)頁中的最大值或最小值,以確定所述第一數(shù)據(jù)中的最大值或最小值。[0048]在第一方面的第十三種可能的實現(xiàn)方式中,所述將待存儲的第一數(shù)據(jù)逐行緩存至所述數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存中之前,所述方法還包括:[0049]在所述存儲介質中創(chuàng)建數(shù)據(jù)表,所述數(shù)據(jù)表用于裝載所述第一數(shù)據(jù);[0050]其中,所述將排序后的所述第二數(shù)據(jù)聚簇存儲至所述數(shù)據(jù)庫系統(tǒng)中的存儲介質中,具體包括:[0051]將排序后的所述第二數(shù)據(jù)逐行插入所述數(shù)據(jù)表中,以將排序后的所述第二數(shù)據(jù)聚簇存儲至所述存儲介質中。[0052]第二方面,本發(fā)明實施例提供一種聚簇存儲裝置,應用于數(shù)據(jù)庫系統(tǒng)中,包括:[0053]緩存單元,用于將待存儲的第一數(shù)據(jù)逐行緩存至所述數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存中;[0054]確定單元,用于確定第一排序列,所述第一排序列用于對所述本地內(nèi)存中已緩存的數(shù)據(jù)進行排序;[0055]操作單元,用于若所述緩存單元在所述本地內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)所述確定單元確定的所述第一排序列,對所述第二數(shù)據(jù)進行排序,所述第二數(shù)據(jù)為所述第一數(shù)據(jù)中的已緩存至所述本地內(nèi)存中的數(shù)據(jù);[0056]存儲單元,用于將所述操作單元排序后的所述第二數(shù)據(jù)聚簇存儲至所述數(shù)據(jù)庫系統(tǒng)中的存儲介質中。[0057]在第二方面的第一種可能的實現(xiàn)方式中,[0058]所述預設條件用于表征所述本地內(nèi)存中已緩存的第二數(shù)據(jù)的數(shù)據(jù)量與所述本地內(nèi)存允許存儲的數(shù)據(jù)量之間的關系。[0059]結合前述的第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述預設條件為所述第二數(shù)據(jù)的行數(shù)大于或等于第一預設閾值,[0060]其中,所述操作單元,具體用于若所述第二數(shù)據(jù)的行數(shù)大于或等于所述第一預設閾值,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序。[0061]結合前述的第二方面或第二方面的第一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述預設條件為所述第二數(shù)據(jù)占用所述本地內(nèi)存的大小大于或等于第二預設閾值,[0062]其中,所述操作單元,具體用于若所述第二數(shù)據(jù)占用所述本地內(nèi)存的大小大于或等于所述第二預設閾值,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序。[0063]結合前述的第二方面或第二方面的第一種可能的實現(xiàn)方式至第三種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,[0064]所述操作單元,具體用于根據(jù)所述確定單元確定的所述第一排序列的數(shù)值大小或所述第一排序列的數(shù)值的哈希值大小對所述第二數(shù)據(jù)進行排序。[0065]結合前述的第二方面或第二方面的第一種可能的實現(xiàn)方式至第四種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,[0066]所述存儲單元,具體用于將所述操作單元排序后的所述第二數(shù)據(jù)聚簇存儲至所述存儲介質中的空閑物理塊中,所述空閑物理塊為除第三數(shù)據(jù)占用的物理塊之外的物理塊,所述第三數(shù)據(jù)為所述第一數(shù)據(jù)中在所述第二數(shù)據(jù)之前已聚簇存儲至所述存儲介質中的數(shù)據(jù)。[0067]結合前述的第二方面或第二方面的第一種可能的實現(xiàn)方式至第五種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,[0068]所述確定單元確定的所述第一排序列包括物理列和表達式中的至少一個。[0069]結合前述的第二方面或第二方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第七種可能的實現(xiàn)方式中,[0070]所述確定單元,還用于在所述存儲單元將所述第一數(shù)據(jù)全部存儲至所述存儲介質中之后,確定查詢列;[0071]所述操作單元,還用于若所述確定單元確定的所述查詢列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作。[0072]結合第二方面的第七種可能的實現(xiàn)方式,在第八種可能的實現(xiàn)方式中,[0073]所述緩存單元,還用于在所述確定單元確定所述查詢列之后,所述操作單元根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作之前,將所述存儲介質中存儲的所述第一數(shù)據(jù)讀入所述本地內(nèi)存中;[0074]其中,所述操作單元,具體用于根據(jù)所述第一個排序列,在所述本地內(nèi)存中采用二分查找方式對所述緩存單元緩存的所述第一數(shù)據(jù)的一個或多個數(shù)據(jù)頁中的每個數(shù)據(jù)頁進行查詢操作。[0075]結合前述的第二方面或第二方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第九種可能的實現(xiàn)方式中,[0076]所述確定單元,還用于在所述存儲單元將所述第一數(shù)據(jù)全部存儲至所述存儲介質中之后,確定第二排序列;[0077]所述操作單元,還用于若所述確定單元確定的所述第二排序列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作。[0078]結合第二方面的第九種可能的實現(xiàn)方式,在第十種可能的實現(xiàn)方式中,[0079]所述緩存單元,還用于在所述確定單元確定所述第二排序列之后,所述操作單元根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作之前,將所述存儲介質中存儲的所述第一數(shù)據(jù)讀入所述本地內(nèi)存中;[0080]其中,所述操作單元,具體用于根據(jù)所述第一個排序列,在所述本地內(nèi)存中對所述緩存單元緩存的所述第一數(shù)據(jù)進行歸并排序。[0081]結合前述的第二方面或第二方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第i種可能的實現(xiàn)方式中,[0082]所述確定單元,還用于在所述存儲單元將所述第一數(shù)據(jù)全部存儲至所述存儲介質中之后,確定聚合列;[0083]所述操作單元,還用于若所述確定單元確定的所述聚合列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作,所述聚合操作為在所述第一數(shù)據(jù)中查找最大值或最小值的操作。[0084]結合第二方面的第十一種可能的實現(xiàn)方式,在第十二種可能的實現(xiàn)方式中,[0085]所述緩存單元,還用于在所述確定單元確定所述聚合列之后,所述操作單元根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作之前,將所述存儲介質中存儲的所述第一數(shù)據(jù)讀入所述本地內(nèi)存中;[0086]其中,所述操作單元,具體用于根據(jù)所述第一個排序列,在所述本地內(nèi)存中確定所述緩存單元緩存的所述第一數(shù)據(jù)的一個或多個數(shù)據(jù)頁中的每個數(shù)據(jù)頁中的最大值或最小值,并依次比較所述每個數(shù)據(jù)頁中的最大值或最小值,以確定所述第一數(shù)據(jù)中的最大值或最小值。[0087]在第二方面的第十三種可能的實現(xiàn)方式中,所述聚簇存儲裝置還包括創(chuàng)建單元,[0088]所述創(chuàng)建單元,用于在所述緩存單元將待存儲的第一數(shù)據(jù)逐行緩存至所述數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存中之前,在所述存儲介質中創(chuàng)建數(shù)據(jù)表,所述數(shù)據(jù)表用于裝載所述第一數(shù)據(jù);[0089]其中,所述操作單元,具體用于將排序后的所述第二數(shù)據(jù)逐行插入所述創(chuàng)建單元創(chuàng)建的所述數(shù)據(jù)表中,以將排序后的所述第二數(shù)據(jù)聚簇存儲至所述存儲介質中。[0090]第三方面,本發(fā)明實施例提供一種數(shù)據(jù)庫系統(tǒng),包括:[0091]底層存儲介質;[0092]內(nèi)存,耦合至所述底層存儲介質,用于作為所述底層存儲介質的緩存,其中所述底層存儲介質中一個或多個數(shù)據(jù)塊映射到所述緩存中的一個目標數(shù)據(jù)塊;[0093]處理器,耦合至所述內(nèi)存,所述處理器執(zhí)行所述內(nèi)存中的指令,用于:[0094]將待存儲的第一數(shù)據(jù)逐行緩存至所述內(nèi)存中,并確定第一排序列,且若所述內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序,以及將排序后的所述第二數(shù)據(jù)聚簇存儲至所述底層存儲介質中,所述第一排序列用于對所述內(nèi)存中已緩存的數(shù)據(jù)進行排序,所述第二數(shù)據(jù)為所述第一數(shù)據(jù)中的已緩存至所述內(nèi)存中的數(shù)據(jù)。[0095]在第三方面的第一種可能的實現(xiàn)方式中,[0096]所述預設條件用于表征所述內(nèi)存中已緩存的第二數(shù)據(jù)的數(shù)據(jù)量與所述內(nèi)存允許存儲的數(shù)據(jù)量之間的關系。[0097]結合前述的第三方面或第三方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述預設條件為所述第二數(shù)據(jù)的行數(shù)大于或等于第一預設閾值,[0098]其中,所述處理器,具體用于若所述第二數(shù)據(jù)的行數(shù)大于或等于所述第一預設閾值,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序。[0099]結合前述的第三方面或第三方面的第一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述預設條件為所述第二數(shù)據(jù)占用所述內(nèi)存的大小大于或等于第二預設閾值,[0100]其中,所述處理器,具體用于若所述第二數(shù)據(jù)占用所述內(nèi)存的大小大于或等于所述第二預設閾值,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序。[0101]結合前述的第三方面或第三方面的第一種可能的實現(xiàn)方式至第三種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,[0102]所述處理器,具體用于根據(jù)所述第一排序列的數(shù)值大小或所述第一排序列的數(shù)值的哈希值大小對所述第二數(shù)據(jù)進行排序。[0103]結合前述的第三方面或第三方面的第一種可能的實現(xiàn)方式至第四種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,[0104]所述處理器,具體用于將所述第二數(shù)據(jù)聚簇存儲至所述底層存儲介質中的空閑物理塊中,所述空閑物理塊為除第三數(shù)據(jù)占用的物理塊之外的物理塊,所述第三數(shù)據(jù)為所述第一數(shù)據(jù)中在所述第二數(shù)據(jù)之前已聚簇存儲至所述底層存儲介質中的數(shù)據(jù)。[0105]結合前述的第三方面或第三方面的第一種可能的實現(xiàn)方式至第五種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,[0106]所述處理器確定的所述第一排序列包括物理列和表達式中的至少一個。[0107]結合前述的第三方面或第三方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第七種可能的實現(xiàn)方式中,[0108]所述處理器,還用于在將所述第一數(shù)據(jù)全部存儲至所述底層存儲介質中之后,確定查詢列,且若所述查詢列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作。[0109]結合第三方面的第七種可能的實現(xiàn)方式,在第八種可能的實現(xiàn)方式中,[0110]所述處理器,還用于在確定所述查詢列之后,根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作之前,將所述底層存儲介質中存儲的所述第一數(shù)據(jù)讀入所述內(nèi)存中,并根據(jù)所述第一個排序列,在所述內(nèi)存中采用二分查找方式對所述第一數(shù)據(jù)的一個或多個數(shù)據(jù)頁中的每個數(shù)據(jù)頁進行查詢操作。[0111]結合前述的第三方面或第三方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第九種可能的實現(xiàn)方式中,[0112]所述處理器,還用于在將所述第一數(shù)據(jù)全部存儲至所述底層存儲介質中之后,確定第二排序列,且若所述第二排序列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作。[0113]結合第三方面的第九種可能的實現(xiàn)方式,在第十種可能的實現(xiàn)方式中,[0114]所述處理器,還用于在確定所述第二排序列之后,根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作之前,將所述底層存儲介質中存儲的所述第一數(shù)據(jù)讀入所述內(nèi)存中,并根據(jù)所述第一個排序列,在所述內(nèi)存中對所述第一數(shù)據(jù)進行歸并排序。[0115]結合前述的第三方面或第三方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第十一種可能的實現(xiàn)方式中,所述處理器,還用于在將所述第一數(shù)據(jù)全部存儲至所述底層存儲介質中之后,確定聚合列,且若所述聚合列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作,所述聚合操作為在所述第一數(shù)據(jù)中查找最大值或最小值的操作。[0116]結合第三方面的第十一種可能的實現(xiàn)方式,在第十二種可能的實現(xiàn)方式中,[0117]所述處理器,還用于在確定所述聚合列之后,根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作之前,將所述底層存儲介質中存儲的所述第一數(shù)據(jù)讀入所述內(nèi)存中,并根據(jù)所述第一個排序列,在所述內(nèi)存中確定所述第一數(shù)據(jù)的一個或多個數(shù)據(jù)頁中的每個數(shù)據(jù)頁中的最大值或最小值,并依次比較所述每個數(shù)據(jù)頁中的最大值或最小值,以確定所述第一數(shù)據(jù)中的最大值或最小值。[0118]在第三方面的第十三種可能的實現(xiàn)方式中,[0119]所述處理器,還用于在將待存儲的第一數(shù)據(jù)逐行緩存至所述內(nèi)存中之前,在所述底層存儲介質中創(chuàng)建數(shù)據(jù)表,并將排序后的所述第二數(shù)據(jù)逐行插入所述數(shù)據(jù)表中,以將排序后的所述第二數(shù)據(jù)聚簇存儲至所述底層存儲介質中,所述數(shù)據(jù)表用于裝載所述第一數(shù)據(jù)。[0120]本發(fā)明實施例提供一種聚簇存儲方法及裝置,通過將待存儲的第一數(shù)據(jù)逐行緩存至數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存中,并確定第一排序列,該第一排序列用于對本地內(nèi)存中已緩存的數(shù)據(jù)進行排序,且若本地內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)該第一排序列對該第二數(shù)據(jù)進行排序,該第二數(shù)據(jù)為該第一數(shù)據(jù)中的已緩存至本地內(nèi)存中的數(shù)據(jù),以及將排序后的該第二數(shù)據(jù)聚簇存儲至數(shù)據(jù)庫系統(tǒng)中的存儲介質中。通過該方案,在將待存儲的第一數(shù)據(jù)逐行緩存至本地內(nèi)存的過程中,當在本地內(nèi)存中已緩存的第二數(shù)據(jù)的數(shù)據(jù)量超出本地內(nèi)存允許存儲的數(shù)據(jù)量時,開始根據(jù)確定的第一排序列,對該第二數(shù)據(jù)進行排序,以及將排序后的該第二數(shù)據(jù)存入數(shù)據(jù)庫系統(tǒng)中的存儲介質中,由于可對待存儲的數(shù)據(jù)一部分一部分進行排序并存儲,以完成數(shù)據(jù)的裝載,因此,可以保證數(shù)據(jù)庫系統(tǒng)中的存儲介質中的數(shù)據(jù)局部有序,從而能夠保證在對數(shù)據(jù)裝載性能和數(shù)據(jù)更新性能影響較小的同時,提高數(shù)據(jù)查詢性能和數(shù)據(jù)壓縮效率?!緦@綀D】【附圖說明】[0121]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的表格和附圖作簡單地介紹,顯而易見地,下面描述中的表格和附圖僅僅是本發(fā)明的一些實施例,即本發(fā)明提供的表格和附圖包括但不限于下面描述中的表格和附圖。[0122]圖1為本發(fā)明實施例提供的聚簇存儲方法的流程圖一;[0123]圖2為本發(fā)明實施例提供的聚簇存儲方法的流程圖二;[0124]圖3為本發(fā)明實施例提供的聚簇存儲方法的流程圖三;[0125]圖4為本發(fā)明實施例提供的索引組織表的結構示意圖;[0126]圖5為本發(fā)明實施例提供的聚簇存儲裝置的結構示意圖一;[0127]圖6為本發(fā)明實施例提供的聚簇存儲裝置的結構示意圖二;[0128]圖7為本發(fā)明實施例提供的數(shù)據(jù)庫系統(tǒng)的結構示意圖;[0129]圖8為本發(fā)明實施例提供的對數(shù)據(jù)進行聚簇存儲的示意圖一;[0130]圖9為本發(fā)明實施例提供的對數(shù)據(jù)進行聚簇存儲的示意圖二?!揪唧w實施方式】[0131]本發(fā)明提供的聚簇存儲方法,根據(jù)聚簇存儲的思想,在將數(shù)據(jù)存入數(shù)據(jù)庫系統(tǒng)中的存儲介質中時,僅保證每次存入存儲介質的數(shù)據(jù)有序(數(shù)據(jù)局部有序),并不考慮存入存儲介質中的所有數(shù)據(jù)有序(數(shù)據(jù)全局有序),因此,采用本發(fā)明提供的聚簇存儲方法,由于存儲介質中的同類數(shù)據(jù)都是經(jīng)過局部排序后存儲的,因此與現(xiàn)有技術中采用堆表在存儲介質中存儲的數(shù)據(jù)為無序存儲的情況相比,能夠保證在對數(shù)據(jù)裝載性能和數(shù)據(jù)更新性能影響較小的同時,提高數(shù)據(jù)查詢性能和數(shù)據(jù)壓縮效率。具體的,采用本發(fā)明實施例提供的聚簇存儲方法,一方面,由于數(shù)據(jù)庫系統(tǒng)中的存儲介質中的同類數(shù)據(jù)都是經(jīng)過局部排序后存儲的,因此數(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ù)據(jù)更新性能的影響較小。即采用本發(fā)明提供的聚簇存儲方法,能夠保證在對數(shù)據(jù)裝載性能和數(shù)據(jù)更新性能影響較小的同時,提高數(shù)據(jù)查詢性能和數(shù)據(jù)壓縮效率。[0132]進一步地,本發(fā)明提供的聚簇存儲方法,由于在數(shù)據(jù)存儲過程中,只需在本地內(nèi)存中對數(shù)據(jù)進行排序,而無需在存儲介質中對數(shù)據(jù)進行排序,且本地內(nèi)存處理數(shù)據(jù)的速度比存儲介質處理數(shù)據(jù)的速度快很多,因此,采用本發(fā)明提供的聚簇存儲方法在對數(shù)據(jù)進行更新時,能夠節(jié)省時間和系統(tǒng)資源。[0133]下面將結合本發(fā)明實施例中的表格和附圖,對本發(fā)明實施例提供的聚簇存儲方法及裝置進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明的一部分實施例,而不是全部的實施例。其中,本發(fā)明實施例提供的聚簇存儲方法及裝置可以應用于數(shù)據(jù)庫系統(tǒng)中,該數(shù)據(jù)庫系統(tǒng)可以包括聚簇存儲裝置的硬件實體和數(shù)據(jù)庫環(huán)境,聚簇存儲裝置的硬件實體可以為計算機節(jié)點(或稱為計算節(jié)點),也可以為能夠實現(xiàn)本發(fā)明實施例提供的聚簇存儲方案的其他設備,即本發(fā)明實施例提供的聚簇存儲方法的執(zhí)行主體可以為計算機節(jié)點或其他設備,下面以該計算機節(jié)點為例,對本發(fā)明實施例提供的聚簇存儲方法及裝置進行說明。[0134]實施例一[0135]本發(fā)明實施例提供一種聚簇存儲方法,應用于數(shù)據(jù)庫系統(tǒng)中,如圖1所示,該方法可以包括:[0136]S101、計算機節(jié)點將待存儲的第一數(shù)據(jù)逐行緩存至數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存中。[0137]若需將硬盤的文本中存儲的數(shù)據(jù),即待存儲的第一數(shù)據(jù)存儲至數(shù)據(jù)庫系統(tǒng)中的存儲介質中,且為了便于以后對該第一數(shù)據(jù)進行訪問,則在該第一數(shù)據(jù)存儲過程中,計算機節(jié)點需先對該第一數(shù)據(jù)進行排序,然后再將排序后的該第一數(shù)據(jù)存入該存儲介質中。計算機節(jié)點在將該第一數(shù)據(jù)存儲至該存儲介質的過程中,計算機節(jié)點首先需要從硬盤將該第一數(shù)據(jù)讀入至數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存。具體的,計算機節(jié)點可以從硬盤將該第一數(shù)據(jù)逐行緩存至該本地內(nèi)存中。[0138]S102、計算機節(jié)點確定第一排序列,該第一排序列用于對該本地內(nèi)存中已緩存的數(shù)據(jù)進行排序。[0139]計算機節(jié)點在將該第一數(shù)據(jù)逐行緩存至該本地內(nèi)存的過程中,計算機節(jié)點可確定第一排序列,其中該第一排序列可以是預設的,其中,該第一排序列可用于對該本地內(nèi)存中已緩存的數(shù)據(jù)進行排序。[0140]可選的,本發(fā)明實施例提供的聚簇存儲方法中,計算機節(jié)點在對第一數(shù)據(jù)進行排序時,可根據(jù)第一排序列的數(shù)值大小或第一排序列的數(shù)值的哈希值大小對該第一數(shù)據(jù)進行排序。[0141]本領域技術人員可以理解,本發(fā)明實施例提供的數(shù)據(jù)庫系統(tǒng)中的存儲介質可以為磁盤,磁盤可以包括硬盤和軟盤。常用的磁盤一般為可移動磁盤,可移動磁盤可以分為兩大類:一類為基于芯片存儲的USB盤(UniversalSerialBusflashdisk,通用串行總線閃存驅動器)或閃盤;另一類為基于硬盤的移動硬盤,其中,可移動磁盤中最主要的為移動硬盤,而移動硬盤又因硬盤的不同分為筆記本移動硬盤和臺式機移動硬盤。可移動硬盤一般都是通過USB接口與計算機相連,即可移動硬盤作為一種存儲介質,可存儲其通過USB接口與計算機傳輸?shù)臄?shù)據(jù)。[0142]特別的,該第一排序列可以稱為主鍵,也可以稱為局部聚簇鍵(partialclusterkey)。[0143]需要說明的是,第一排序列為用戶在指示計算機節(jié)點創(chuàng)建數(shù)據(jù)表時,根據(jù)該第一數(shù)據(jù)的屬性指定的對該第一數(shù)據(jù)進行排序的依據(jù),即計算機節(jié)點可根據(jù)該第一排序列,通過對待存儲的第一數(shù)據(jù)中,該本地內(nèi)存中已緩存的各個部分數(shù)據(jù)分別進行排序,而使得該第一數(shù)據(jù)中的各個部分數(shù)據(jù)分別有序排列,進而保證該第一數(shù)據(jù)局部有序。[0144]進一步地,用戶可在指示創(chuàng)建數(shù)據(jù)表時,通過一個語句指定數(shù)據(jù)表存儲結構,其中,該數(shù)據(jù)表存儲結構中指定了該第一排序列。舉例來說,用戶可使用語句:[0145]Createtablet(clint,c2int,partialclusterkey(cl,c2+l)指定數(shù)據(jù)表t存儲結構,且該數(shù)據(jù)表t存儲結構中包括該第一排序列,即局部聚簇鍵。[0146]其中,數(shù)據(jù)表是由一組數(shù)據(jù)記錄組成的。一個數(shù)據(jù)表是一組相關的按行排列的數(shù)據(jù);每個數(shù)據(jù)表中都含有相同類型的信息。數(shù)據(jù)表實際上是一個二維表格,例如,一個班所有學生的考試成績,可以存放在一個數(shù)據(jù)表中,數(shù)據(jù)表中的每一行對應一個學生,其包含所對應學生的所有信息,如可以包括學生的學號,姓名及各門課程的成績等。[0147]數(shù)據(jù)表存儲結構就是定義的一個數(shù)據(jù)表的字段、類型、主鍵、外鍵、索引等,即由這些基本的屬性組成了數(shù)據(jù)表存儲結構。確定了數(shù)據(jù)表存儲結構后,可直接根據(jù)該數(shù)據(jù)表存儲結構,插入不同類型的數(shù)據(jù)。[0148]數(shù)據(jù)庫為存儲數(shù)據(jù)的倉庫,其由一個或一組數(shù)據(jù)表組成,數(shù)據(jù)庫中的數(shù)據(jù)是以數(shù)據(jù)表為單位進行組織的。每個數(shù)據(jù)庫都以文件的形式存放在磁盤上,即每個數(shù)據(jù)庫對應于一個物理文件。不同的數(shù)據(jù)庫,與物理文件的對應方式也不相同。例如,一個數(shù)據(jù)庫可以包含一個數(shù)據(jù)表,也可以包含多個數(shù)據(jù)表。[0149]進一步地,本發(fā)明實施例提供的聚簇存儲方法,由于計算機節(jié)點是在數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存中完成對第一數(shù)據(jù)的排序,且受該本地內(nèi)存的大小及處理數(shù)據(jù)的能力限制,因此,該計算機節(jié)點只能對該第一數(shù)據(jù)一部分一部分的進行排序,從而計算機節(jié)點再依次將排序后的該一部分一部分的數(shù)據(jù)存入數(shù)據(jù)庫系統(tǒng)中的存儲介質,進而能夠保證該存儲介質中存儲的第一數(shù)據(jù)局部有序。[0150]S103、若計算機節(jié)點在該本地內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,計算機節(jié)點則根據(jù)該第一排序列對該第二數(shù)據(jù)進行排序,該第二數(shù)據(jù)為該第一數(shù)據(jù)中的已緩存至該本地內(nèi)存中的數(shù)據(jù)。[0151]計算機節(jié)點在緩存該第一數(shù)據(jù)的過程中,由于數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存的大小和處理數(shù)據(jù)的能力有限,因此,該第一數(shù)據(jù)可能無法一次全部緩存至該本地內(nèi)存中,即計算機節(jié)點可將該第一數(shù)據(jù)一部分一部分的分別緩存至該本地內(nèi)存中,從而計算機節(jié)點可依次對本地內(nèi)存中分別緩存的數(shù)據(jù)一部分一部分地進行處理。具體的,計算機節(jié)點可實時地統(tǒng)計本地內(nèi)存中已緩存的第二數(shù)據(jù)的情況,當計算機節(jié)點檢測到在本地內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件時,計算機節(jié)點可開始根據(jù)該第一排序列對該第二數(shù)據(jù)進行排序,其中,該第二數(shù)據(jù)為該第一數(shù)據(jù)中的已緩存至該本地內(nèi)存中的數(shù)據(jù)。[0152]進一步地,上述預設條件可以用于表征該本地內(nèi)存中已緩存的第二數(shù)據(jù)的數(shù)據(jù)量與該本地內(nèi)存允許存儲的數(shù)據(jù)量之間的關系。[0153]S104、計算機節(jié)點將排序后的該第二數(shù)據(jù)聚簇存儲至數(shù)據(jù)庫系統(tǒng)中的存儲介質中。[0154]在數(shù)據(jù)庫中,為了提高某個屬性或屬性組的查詢速度,可以將該屬性或該屬性組(稱為聚簇碼)上具有相同值的元祖集中存放在連續(xù)的物理塊中,這種存儲方法稱為聚簇。使用聚簇存儲數(shù)據(jù)可以大大提高按聚簇碼進行查詢的效率。[0155]計算機節(jié)點對該第二數(shù)據(jù)進行排序后,計算機節(jié)點可將排序后的該第二數(shù)據(jù)聚簇存儲至數(shù)據(jù)庫系統(tǒng)中的存儲介質中,從而完成對該第二數(shù)據(jù)的裝載過程。[0156]需要說明的是,計算機節(jié)點可重復執(zhí)行上述S101-S104,直至將待存儲的第一數(shù)據(jù)全部存儲至數(shù)據(jù)庫系統(tǒng)中的存儲介質中。[0157]可以理解的是,計算機節(jié)點可依次對該第一數(shù)據(jù)中,已緩存至該本地內(nèi)存中的每部分數(shù)據(jù)分別按照預設的第一排序列進行排序,并將每次排序后的該每部分數(shù)據(jù)存儲至該存儲介質中,從而可保證該存儲介質中存儲的第一數(shù)據(jù)局部有序,即該存儲介質中存儲的第一數(shù)據(jù)中的每部分數(shù)據(jù)都有序排列。[0158]示例性的,若用戶需將第一數(shù)據(jù),即某學院舞蹈系的500名學生的信息存儲至數(shù)據(jù)庫系統(tǒng)中的存儲介質中,以便于后續(xù)訪問,則用戶首先需將該500名學生的信息輸入計算機節(jié)點,并以文本的形式存儲在計算機節(jié)點的硬盤中。在計算機節(jié)點根據(jù)用戶的指示將該500名學生的信息存入數(shù)據(jù)庫系統(tǒng)中的存儲介質的過程中,計算機節(jié)點可將該500名學生的信息從硬盤的文本中讀入數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存中,具體的,計算機節(jié)點可將該500名學生的信息,按照每個學生逐行將每個學生的信息依次讀入該本地內(nèi)存中。[0159]假設每個學生的信息包括:班級、姓名、學號、年齡、特長、家庭情況等屬性,則通過本發(fā)明實施例提供的聚簇存儲方法,可將這500名學生的信息組成一個數(shù)據(jù)表,如表1所示,其中,表1中的每行(即每個學生的信息)為一個元組,每列(所有學生的某項信息)為一個屬性。[0160]表1[0161]【權利要求】1.一種聚簇存儲方法,應用于數(shù)據(jù)庫系統(tǒng)中,其特征在于,包括:將待存儲的第一數(shù)據(jù)逐行緩存至所述數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存中;確定第一排序列,所述第一排序列用于對所述本地內(nèi)存中已緩存的數(shù)據(jù)進行排序;若所述本地內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序,所述第二數(shù)據(jù)為所述第一數(shù)據(jù)中的已緩存至所述本地內(nèi)存中的數(shù)據(jù);將排序后的所述第二數(shù)據(jù)聚簇存儲至所述數(shù)據(jù)庫系統(tǒng)中的存儲介質中。2.根據(jù)權利要求1所述的聚簇存儲方法,其特征在于,所述預設條件用于表征所述本地內(nèi)存中已緩存的第二數(shù)據(jù)的數(shù)據(jù)量與所述本地內(nèi)存允許存儲的數(shù)據(jù)量之間的關系。3.根據(jù)權利要求1或2所述的聚簇存儲方法,其特征在于,所述預設條件為所述第二數(shù)據(jù)的行數(shù)大于或等于第一預設閾值,其中,所述若所述本地內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序,具體包括:若所述第二數(shù)據(jù)的行數(shù)大于或等于所述第一預設閾值,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序。4.根據(jù)權利要求1或2所述的聚簇存儲方法,其特征在于,所述預設條件為所述第二數(shù)據(jù)占用所述本地內(nèi)存的大小大于或等于第二預設閾值,其中,所述若所述本地內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序,具體包括:若所述第二數(shù)據(jù)占用所述本地內(nèi)存的大小大于或等于所述第二預設閾值,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序。5.根據(jù)權利要求1-4任一項所述的聚簇存儲方法,其特征在于,所述根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序,具體包括:根據(jù)所述第一排序列的數(shù)值大小或所述第一排序列的數(shù)值的哈希值大小對所述第二數(shù)據(jù)進行排序。6.根據(jù)權利要求1-5任一項所述的聚簇存儲方法,其特征在于,所述將排序后的所述第二數(shù)據(jù)聚簇存儲至所述數(shù)據(jù)庫系統(tǒng)中的存儲介質中,具體包括:將排序后的所述第二數(shù)據(jù)聚簇存儲至所述存儲介質中的空閑物理塊中,所述空閑物理塊為除第三數(shù)據(jù)占用的物理塊之外的物理塊,所述第三數(shù)據(jù)為所述第一數(shù)據(jù)中在所述第二數(shù)據(jù)之前已聚簇存儲至所述存儲介質中的數(shù)據(jù)。7.根據(jù)權利要求1-6任一項所述的聚簇存儲方法,其特征在于,所述第一排序列包括物理列和表達式中的至少一個。8.根據(jù)權利要求1-7任一項所述的聚簇存儲方法,其特征在于,在所述第一數(shù)據(jù)全部存儲至所述存儲介質中之后,所述方法還包括:確定查詢列;若所述查詢列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作。9.根據(jù)權利要求8所述的聚簇存儲方法,其特征在于,所述確定查詢列之后,根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作之前,所述方法還包括:將所述存儲介質中存儲的所述第一數(shù)據(jù)讀入所述本地內(nèi)存中;其中,所述根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作,具體包括:根據(jù)所述第一個排序列,在所述本地內(nèi)存中采用二分查找方式對所述第一數(shù)據(jù)的一個或多個數(shù)據(jù)頁中的每個數(shù)據(jù)頁進行查詢操作。10.根據(jù)權利要求1-7任一項所述的聚簇存儲方法,其特征在于,在所述第一數(shù)據(jù)全部存儲至所述存儲介質中之后,所述方法還包括:確定第二排序列;若所述第二排序列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作。11.根據(jù)權利要求10所述的聚簇存儲方法,其特征在于,所述確定第二排序列之后,根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作之前,所述方法還包括:將所述存儲介質中存儲的所述第一數(shù)據(jù)讀入所述本地內(nèi)存中;其中,所述根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作,具體包括:根據(jù)所述第一個排序列,在所述本地內(nèi)存中對所述第一數(shù)據(jù)進行歸并排序。12.根據(jù)權利要求1-7任一項所述的聚簇存儲方法,其特征在于,在所述第一數(shù)據(jù)全部存儲至所述存儲介質中之后,所述方法還包括:確定聚合列;若所述聚合列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作,所述聚合操作為在所述第一數(shù)據(jù)中查找最大值或最小值的操作。13.根據(jù)權利要求12所述的聚簇存儲方法,其特征在于,所述確定聚合列之后,根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作之前,所述方法還包括:將所述存儲介質中存儲的所述第一數(shù)據(jù)讀入所述本地內(nèi)存中;其中,所述根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作,具體包括:根據(jù)所述第一個排序列,在所述本地內(nèi)存中確定所述第一數(shù)據(jù)的一個或多個數(shù)據(jù)頁中的每個數(shù)據(jù)頁中的最大值或最小值;依次比較所述每個數(shù)據(jù)頁中的最大值或最小值,以確定所述第一數(shù)據(jù)中的最大值或最小值。14.根據(jù)權利要求1所述的聚簇存儲方法,其特征在于,所述將待存儲的第一數(shù)據(jù)逐行緩存至所述數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存中之前,所述方法還包括:在所述存儲介質中創(chuàng)建數(shù)據(jù)表,所述數(shù)據(jù)表用于裝載所述第一數(shù)據(jù);其中,所述將排序后的所述第二數(shù)據(jù)聚簇存儲至所述數(shù)據(jù)庫系統(tǒng)中的存儲介質中,具體包括:將排序后的所述第二數(shù)據(jù)逐行插入所述數(shù)據(jù)表中,以將排序后的所述第二數(shù)據(jù)聚簇存儲至所述存儲介質中。15.一種聚簇存儲裝置,應用于數(shù)據(jù)庫系統(tǒng)中,其特征在于,包括:緩存單元,用于將待存儲的第一數(shù)據(jù)逐行緩存至所述數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存中;確定單元,用于確定第一排序列,所述第一排序列用于對所述本地內(nèi)存中已緩存的數(shù)據(jù)進行排序;操作單元,用于若所述緩存單元在所述本地內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)所述確定單元確定的所述第一排序列,對所述第二數(shù)據(jù)進行排序,所述第二數(shù)據(jù)為所述第一數(shù)據(jù)中的已緩存至所述本地內(nèi)存中的數(shù)據(jù);存儲單元,用于將所述操作單元排序后的所述第二數(shù)據(jù)聚簇存儲至所述數(shù)據(jù)庫系統(tǒng)中的存儲介質中。16.根據(jù)權利要求15所述的聚簇存儲裝置,其特征在于,所述預設條件用于表征所述本地內(nèi)存中已緩存的第二數(shù)據(jù)的數(shù)據(jù)量與所述本地內(nèi)存允許存儲的數(shù)據(jù)量之間的關系。17.根據(jù)權利要求15或16所述的聚簇存儲裝置,其特征在于,所述預設條件為所述第二數(shù)據(jù)的行數(shù)大于或等于第一預設閾值,其中,所述操作單元,具體用于若所述第二數(shù)據(jù)的行數(shù)大于或等于所述第一預設閾值,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序。18.根據(jù)權利要求15或16所述的聚簇存儲裝置,其特征在于,所述預設條件為所述第二數(shù)據(jù)占用所述本地內(nèi)存的大小大于或等于第二預設閾值,其中,所述操作單元,具體用于若所述第二數(shù)據(jù)占用所述本地內(nèi)存的大小大于或等于所述第二預設閾值,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序。19.根據(jù)權利要求15-18任一項所述的聚簇存儲裝置,其特征在于,所述操作單元,具體用于根據(jù)所述確定單元確定的所述第一排序列的數(shù)值大小或所述第一排序列的數(shù)值的哈希值大小對所述第二數(shù)據(jù)進行排序。20.根據(jù)權利要求15-19任一項所述的聚簇存儲裝置,其特征在于,所述存儲單元,具體用于將所述操作單元排序后的所述第二數(shù)據(jù)聚簇存儲至所述存儲介質中的空閑物理塊中,所述空閑物理塊為除第三數(shù)據(jù)占用的物理塊之外的物理塊,所述第三數(shù)據(jù)為所述第一數(shù)據(jù)中在所述第二數(shù)據(jù)之前已聚簇存儲至所述存儲介質中的數(shù)據(jù)。21.根據(jù)權利要求15-20任一項所述的聚簇存儲裝置,其特征在于,所述確定單元確定的所述第一排序列包括物理列和表達式中的至少一個。22.根據(jù)權利要求15-21任一項所述的聚簇存儲裝置,其特征在于,所述確定單元,還用于在所述存儲單元將所述第一數(shù)據(jù)全部存儲至所述存儲介質中之后,確定查詢列;所述操作單元,還用于若所述確定單元確定的所述查詢列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作。23.根據(jù)權利要求22所述的聚簇存儲裝置,其特征在于,所述緩存單元,還用于在所述確定單元確定所述查詢列之后,所述操作單元根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作之前,將所述存儲介質中存儲的所述第一數(shù)據(jù)讀入所述本地內(nèi)存中;其中,所述操作單元,具體用于根據(jù)所述第一個排序列,在所述本地內(nèi)存中采用二分查找方式對所述緩存單元緩存的所述第一數(shù)據(jù)的一個或多個數(shù)據(jù)頁中的每個數(shù)據(jù)頁進行查詢操作。24.根據(jù)權利要求15-21任一項所述的聚簇存儲裝置,其特征在于,所述確定單元,還用于在所述存儲單元將所述第一數(shù)據(jù)全部存儲至所述存儲介質中之后,確定第二排序列;所述操作單元,還用于若所述確定單元確定的所述第二排序列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作。25.根據(jù)權利要求24所述的聚簇存儲裝置,其特征在于,所述緩存單元,還用于在所述確定單元確定所述第二排序列之后,所述操作單元根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作之前,將所述存儲介質中存儲的所述第一數(shù)據(jù)讀入所述本地內(nèi)存中;其中,所述操作單元,具體用于根據(jù)所述第一個排序列,在所述本地內(nèi)存中對所述緩存單元緩存的所述第一數(shù)據(jù)進行歸并排序。26.根據(jù)權利要求15-21任一項所述的聚簇存儲裝置,其特征在于,所述確定單元,還用于在所述存儲單元將所述第一數(shù)據(jù)全部存儲至所述存儲介質中之后,確定聚合列;所述操作單元,還用于若所述確定單元確定的所述聚合列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作,所述聚合操作為在所述第一數(shù)據(jù)中查找最大值或最小值的操作。27.根據(jù)權利要求26所述的聚簇存儲裝置,其特征在于,所述緩存單元,還用于在所述確定單元確定所述聚合列之后,所述操作單元根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作之前,將所述存儲介質中存儲的所述第一數(shù)據(jù)讀入所述本地內(nèi)存中;其中,所述操作單元,具體用于根據(jù)所述第一個排序列,在所述本地內(nèi)存中確定所述緩存單元緩存的所述第一數(shù)據(jù)的一個或多個數(shù)據(jù)頁中的每個數(shù)據(jù)頁中的最大值或最小值,并依次比較所述每個數(shù)據(jù)頁中的最大值或最小值,以確定所述第一數(shù)據(jù)中的最大值或最小值。28.根據(jù)權利要求15所述的聚簇存儲裝置,其特征在于,所述聚簇存儲裝置還包括創(chuàng)建單元,所述創(chuàng)建單元,用于在所述緩存單元將待存儲的第一數(shù)據(jù)逐行緩存至所述數(shù)據(jù)庫系統(tǒng)中的本地內(nèi)存中之前,在所述存儲介質中創(chuàng)建數(shù)據(jù)表,所述數(shù)據(jù)表用于裝載所述第一數(shù)據(jù);其中,所述操作單元,具體用于將排序后的所述第二數(shù)據(jù)逐行插入所述創(chuàng)建單元創(chuàng)建的所述數(shù)據(jù)表中,以將排序后的所述第二數(shù)據(jù)聚簇存儲至所述存儲介質中。29.一種數(shù)據(jù)庫系統(tǒng),其特征在于,包括:底層存儲介質;內(nèi)存,耦合至所述底層存儲介質,用于作為所述底層存儲介質的緩存;處理器,耦合至所述內(nèi)存,所述處理器執(zhí)行所述內(nèi)存中的指令,用于:將待存儲的第一數(shù)據(jù)逐行緩存至所述內(nèi)存中,并確定第一排序列,且若所述內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序,以及將排序后的所述第二數(shù)據(jù)聚簇存儲至所述底層存儲介質中,所述第一排序列用于對所述內(nèi)存中已緩存的數(shù)據(jù)進行排序,所述第二數(shù)據(jù)為所述第一數(shù)據(jù)中的已緩存至所述內(nèi)存中的數(shù)據(jù)。30.根據(jù)權利要求29所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述預設條件用于表征所述內(nèi)存中已緩存的第二數(shù)據(jù)的數(shù)據(jù)量與所述內(nèi)存允許存儲的數(shù)據(jù)量之間的關系。31.根據(jù)權利要求29或30所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述預設條件為所述第二數(shù)據(jù)的行數(shù)大于或等于第一預設閾值,其中,在所述若所述內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序的方面,所述處理器具體用于若所述第二數(shù)據(jù)的行數(shù)大于或等于所述第一預設閾值,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序。32.根據(jù)權利要求29或30所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述預設條件為所述第二數(shù)據(jù)占用所述內(nèi)存的大小大于或等于第二預設閾值,其中,在所述若所述內(nèi)存中已緩存的第二數(shù)據(jù)滿足預設條件,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序的方面,所述處理器具體用于若所述第二數(shù)據(jù)占用所述內(nèi)存的大小大于或等于所述第二預設閾值,則根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序。33.根據(jù)權利要求29-32任一項所述的數(shù)據(jù)庫系統(tǒng),其特征在于,在所述根據(jù)所述第一排序列對所述第二數(shù)據(jù)進行排序的方面,所述處理器具體用于根據(jù)所述第一排序列的數(shù)值大小或所述第一排序列的數(shù)值的哈希值大小對所述第二數(shù)據(jù)進行排序。34.根據(jù)權利要求29-33任一項所述的數(shù)據(jù)庫系統(tǒng),其特征在于,在所述將排序后的所述第二數(shù)據(jù)聚簇存儲至所述底層存儲介質中的方面,所述處理器,具體用于將所述第二數(shù)據(jù)聚簇存儲至所述底層存儲介質中的空閑物理塊中,所述空閑物理塊為除第三數(shù)據(jù)占用的物理塊之外的物理塊,所述第三數(shù)據(jù)為所述第一數(shù)據(jù)中在所述第二數(shù)據(jù)之前已聚簇存儲至所述底層存儲介質中的數(shù)據(jù)。35.根據(jù)權利要求29-34任一項所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述處理器確定的所述第一排序列包括物理列和表達式中的至少一個。36.根據(jù)權利要求29-35任一項所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述處理器,還用于在將所述第一數(shù)據(jù)全部存儲至所述底層存儲介質中之后,確定查詢列,且若所述查詢列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作。37.根據(jù)權利要求36所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述處理器,還用于在確定所述查詢列之后,根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行查詢操作之前,將所述底層存儲介質中存儲的所述第一數(shù)據(jù)讀入所述內(nèi)存中,并根據(jù)所述第一個排序列,在所述內(nèi)存中采用二分查找方式對所述第一數(shù)據(jù)的一個或多個數(shù)據(jù)頁中的每個數(shù)據(jù)頁進行查詢操作。38.根據(jù)權利要求29-35任一項所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述處理器,還用于在將所述第一數(shù)據(jù)全部存儲至所述底層存儲介質中之后,確定第二排序列,且若所述第二排序列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作。39.根據(jù)權利要求38所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述處理器,還用于在確定所述第二排序列之后,根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行排序操作之前,將所述底層存儲介質中存儲的所述第一數(shù)據(jù)讀入所述內(nèi)存中,并根據(jù)所述第一個排序列,在所述內(nèi)存中對所述第一數(shù)據(jù)進行歸并排序。40.根據(jù)權利要求29-35任一項所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述處理器,還用于在將所述第一數(shù)據(jù)全部存儲至所述底層存儲介質中之后,確定聚合列,且若所述聚合列為所述第一排序列中的第一個排序列,則根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作,所述聚合操作為在所述第一數(shù)據(jù)中查找最大值或最小值的操作。41.根據(jù)權利要求40所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述處理器,還用于在確定所述聚合列之后,根據(jù)所述第一個排序列,對所述第一數(shù)據(jù)進行聚合操作之前,將所述底層存儲介質中存儲的所述第一數(shù)據(jù)讀入所述內(nèi)存中,并根據(jù)所述第一個排序列,在所述內(nèi)存中確定所述第一數(shù)據(jù)的一個或多個數(shù)據(jù)頁中的每個數(shù)據(jù)頁中的最大值或最小值,并依次比較所述每個數(shù)據(jù)頁中的最大值或最小值,以確定所述第一數(shù)據(jù)中的最大值或最小值。42.根據(jù)權利要求29所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述處理器,還用于在將待存儲的第一數(shù)據(jù)逐行緩存至所述內(nèi)存中之前,在所述底層存儲介質中創(chuàng)建數(shù)據(jù)表,并將排序后的所述第二數(shù)據(jù)逐行插入所述數(shù)據(jù)表中,以將排序后的所述第二數(shù)據(jù)聚簇存儲至所述底層存儲介質中,所述數(shù)據(jù)表用于裝載所述第一數(shù)據(jù)?!疚臋n編號】G06F17/30GK104021161SQ201410228979【公開日】2014年9月3日申請日期:2014年5月27日優(yōu)先權日:2014年5月27日【發(fā)明者】張金玉,周慶慶,張仲良申請人:華為技術有限公司