本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及無共享分布式數(shù)據(jù)庫的數(shù)據(jù)分布的方法和裝置。
背景技術(shù):無共享分布式數(shù)據(jù)庫思路是把數(shù)據(jù)分布到多個(gè)數(shù)據(jù)分片(shard)上,每個(gè)shard擁有自己的CPU(CentralProcessingUnit,中央處理器)和內(nèi)存,管理自己的存儲(chǔ)空間,各個(gè)shard之間不共享數(shù)據(jù),應(yīng)用通過分片管理(即數(shù)據(jù)的存儲(chǔ)方式)找到正確的shard來進(jìn)行數(shù)據(jù)讀寫?,F(xiàn)有技術(shù)中,可以通過區(qū)間劃分的方式將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)在相應(yīng)的shard中。具體的,可以根據(jù)MSISDN(移動(dòng)臺(tái)國際ISDN<IntegratedServicesDigitalNetwork,綜合業(yè)務(wù)數(shù)字網(wǎng)>號(hào)碼)的數(shù)值對(duì)待存儲(chǔ)數(shù)據(jù)進(jìn)行區(qū)間劃分,劃分后的區(qū)域的數(shù)量與shard的數(shù)量相同,然后,按照一定的準(zhǔn)則將相應(yīng)的區(qū)域的待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中。但是,采取這種數(shù)據(jù)存儲(chǔ)方式后,每個(gè)shard管理多個(gè)區(qū)間,當(dāng)數(shù)據(jù)庫需要擴(kuò)容時(shí),即增加數(shù)據(jù)庫中包含的shard的數(shù)量,這樣,還需要對(duì)區(qū)間進(jìn)行重新劃分,將新劃分好的區(qū)間分配給相應(yīng)的shard,由于,各shard對(duì)應(yīng)的區(qū)間變化了,因此,各shard中存儲(chǔ)的數(shù)據(jù)也隨之變化,導(dǎo)致大部分?jǐn)?shù)據(jù)需要在shard之間進(jìn)行遷移,降低了數(shù)據(jù)庫的性能。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明的實(shí)施例提供一種無共享分布式數(shù)據(jù)庫的數(shù)據(jù)分布的方法和裝置,解決了當(dāng)數(shù)據(jù)庫擴(kuò)容后,導(dǎo)致大部分?jǐn)?shù)據(jù)需要在shard之間進(jìn)行遷移,降低了數(shù)據(jù)庫的性能的問題。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:第一方面,提供一種無共享分布式數(shù)據(jù)庫的數(shù)據(jù)分布的方法,包括:為數(shù)據(jù)庫中包含的數(shù)據(jù)分片shard配置第一shard標(biāo)識(shí);根據(jù)所述第一shard標(biāo)識(shí)將第一待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中;在數(shù)據(jù)庫擴(kuò)容后,根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí);將所述數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至所述第二shard標(biāo)識(shí)對(duì)應(yīng)的shard中存儲(chǔ)。在第一種可能實(shí)現(xiàn)的方式中,所述為數(shù)據(jù)庫中的數(shù)據(jù)分片shard配置第一shard標(biāo)識(shí)包括:將各shard的所述第一shard標(biāo)識(shí)設(shè)置為整數(shù),且不同shard的所述第一shard標(biāo)識(shí)不同,相鄰shard的所述第一shard標(biāo)識(shí)的差為1;所述根據(jù)所述第一shard標(biāo)識(shí)將第一待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中包括:將所述第一待存儲(chǔ)數(shù)據(jù)的移動(dòng)臺(tái)國際綜合業(yè)務(wù)數(shù)字網(wǎng)號(hào)碼MSISDN除以N,得到第一余數(shù),所述N為所述數(shù)據(jù)庫包括的shard的個(gè)數(shù);將所述第一待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至與所述第一余數(shù)相同的所述第一shard標(biāo)識(shí)對(duì)應(yīng)的shard中。結(jié)合第一方面或第一方面的第一種可能實(shí)現(xiàn)的方式,在第二種可能實(shí)現(xiàn)的方式中,根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí)包括:將所述第二shard標(biāo)識(shí)確定為與所述數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一shard標(biāo)識(shí)相同的shard標(biāo)識(shí)。結(jié)合第一方面或第一方面的第一種可能實(shí)現(xiàn)的方式或第二種可能實(shí)現(xiàn)的方式,在第三種可能實(shí)現(xiàn)的方式中,所述部分?jǐn)?shù)據(jù)的數(shù)據(jù)量與所有數(shù)據(jù)的數(shù)據(jù)量的一半的差值小于預(yù)設(shè)值,所述所有數(shù)據(jù)為所述數(shù)據(jù)量最大的shard中存儲(chǔ)的所有數(shù)據(jù)。結(jié)合第一方面或第一方面的第一種可能實(shí)現(xiàn)的方式至第三種可能實(shí)現(xiàn)的方式中任意一種方式,在第四種可能實(shí)現(xiàn)的方式中,所述根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí)之后,還包括:根據(jù)所述第一shard標(biāo)識(shí)和所述第二shard標(biāo)識(shí)將第二待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中;若存在至少兩個(gè)shard的shard標(biāo)識(shí)相同,且所述第二待存儲(chǔ)數(shù)據(jù)的第一余數(shù)與所述至少兩個(gè)shard的shard標(biāo)識(shí)相同,則所述根據(jù)shard標(biāo)識(shí)將第二待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中包括:按照輪流的方式選擇所述至少兩個(gè)shard中的一個(gè),并存儲(chǔ)所述第二待存儲(chǔ)數(shù)據(jù);或者,將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至所述至少兩個(gè)shard中的數(shù)據(jù)量最小的shard中。結(jié)合第一方面,在第五種可能實(shí)現(xiàn)的方式中,所述為數(shù)據(jù)庫中的數(shù)據(jù)分片shard配置第一shard標(biāo)識(shí)包括:將預(yù)設(shè)參考區(qū)間平均分成N個(gè)子區(qū)間,每個(gè)子區(qū)間對(duì)應(yīng)一個(gè)shard,所述N為所述數(shù)據(jù)庫中包含的shard的數(shù)量,所述預(yù)設(shè)參考區(qū)間為整數(shù)區(qū)間;將各shard的所述第一shard標(biāo)識(shí)分別設(shè)置為對(duì)應(yīng)子區(qū)間中的任意數(shù)值,不同shard的所述第一shard標(biāo)識(shí)分別屬于不同子區(qū)間;所述根據(jù)所述第一shard標(biāo)識(shí)將第一待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中包括:將所述第一待存儲(chǔ)數(shù)據(jù)的MSISDN除以預(yù)設(shè)參數(shù),得到第二余數(shù),其中,所述預(yù)設(shè)參數(shù)大于所述數(shù)據(jù)庫中包含的shard的數(shù)量;根據(jù)所述第二余數(shù),將所述第一待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中,其中,所述shard的第一shard標(biāo)識(shí)對(duì)應(yīng)的子區(qū)間包含所述第二余數(shù)。結(jié)合第一方面的第五種可能實(shí)現(xiàn)的方式,在第六種可能實(shí)現(xiàn)的方式中,所述將MSISDN除以所述預(yù)設(shè)參數(shù)包括:將所述第一待存儲(chǔ)數(shù)據(jù)的MSISDN所有數(shù)位除以所述預(yù)設(shè)參數(shù);或者,將待存儲(chǔ)數(shù)據(jù)的MSISDN的低數(shù)位除以所述預(yù)設(shè)參數(shù),所述低數(shù)位的位數(shù)大于或等于預(yù)設(shè)參數(shù)的位數(shù)。結(jié)合第一方面的第五種可能實(shí)現(xiàn)的方式或第六種可能實(shí)現(xiàn)的方式,在第七種可能實(shí)現(xiàn)的方式中,所述根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí)包括:從所述N個(gè)子區(qū)間中獲取連續(xù)的兩個(gè)子區(qū)間的總范圍最大的兩個(gè)子區(qū)間;將所述兩個(gè)子區(qū)間合并成一個(gè)子區(qū)間;將合并的一個(gè)子區(qū)間平均分成三個(gè)子區(qū)間;將所述新增加的shard的所述第二shard標(biāo)識(shí)設(shè)置為所述三個(gè)子區(qū)間中位于中間位置的子區(qū)間中的任意數(shù)值,將所述兩個(gè)子區(qū)間中高子區(qū)間對(duì)應(yīng)的shard的第一shard標(biāo)識(shí)修改為所述三個(gè)子區(qū)間中高子區(qū)間中的任意數(shù)值,將所述兩個(gè)子區(qū)間中低子區(qū)間對(duì)應(yīng)的shard的第一shard標(biāo)識(shí)修改為所述三個(gè)子區(qū)間中低子區(qū)間中的任意數(shù)值。結(jié)合第一方面的第七種可能實(shí)現(xiàn)的方式,在第八種可能實(shí)現(xiàn)的方式中,所述將所述數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至所述第二shard標(biāo)識(shí)對(duì)應(yīng)的shard中存儲(chǔ)包括:將所述兩個(gè)子區(qū)間對(duì)應(yīng)的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至所述shard中存儲(chǔ)。結(jié)合第一方面的第五種可能實(shí)現(xiàn)的方式至第八種可能實(shí)現(xiàn)的方式中任意一種方式,在第九種可能實(shí)現(xiàn)的方式中,所述預(yù)設(shè)參數(shù)大于或等于所述數(shù)據(jù)庫中包含的shard的數(shù)量乘以250。第二方面,提供一種無共享分布式數(shù)據(jù)庫的數(shù)據(jù)分布的裝置,包括:第一配置單元,用于為數(shù)據(jù)庫中包含的數(shù)據(jù)分片shard配置第一shard標(biāo)識(shí);存儲(chǔ)單元,用于根據(jù)所述第一shard標(biāo)識(shí)將第一待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中;第二配置單元,用于根據(jù)所述第一shard標(biāo)識(shí)將第一待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中;遷移單元,用于將所述數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至所述第二shard標(biāo)識(shí)對(duì)應(yīng)的shard中存儲(chǔ)。在第一種可能實(shí)現(xiàn)的方式中,所述第一配置單元,具體用于將各shard的所述第一shard標(biāo)識(shí)設(shè)置為整數(shù),且不同shard的所述第一shard標(biāo)識(shí)不同,相鄰shard的所述第一shard標(biāo)識(shí)的差為1;所述存儲(chǔ)單元,具體用于將所述第一待存儲(chǔ)數(shù)據(jù)的移動(dòng)臺(tái)國際綜合業(yè)務(wù)數(shù)字網(wǎng)號(hào)碼MSISDN除以N,得到第一余數(shù),所述N為所述數(shù)據(jù)庫包括的shard的個(gè)數(shù);將所述第一待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至與所述第一余數(shù)相同的所述第一shard標(biāo)識(shí)對(duì)應(yīng)的shard中。結(jié)合第二方面或第二方面的第一種可能實(shí)現(xiàn)的方式,在第二種可能實(shí)現(xiàn)的方式中,所述第二配置單元,具體用于將所述第二shard標(biāo)識(shí)確定為與所述數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一shard標(biāo)識(shí)相同的shard標(biāo)識(shí)。結(jié)合第二方面或第二方面的第一種可能實(shí)現(xiàn)的方式或第二種可能實(shí)現(xiàn)的方式,在第三種可能實(shí)現(xiàn)的方式中,所述遷移單元遷移的所述部分?jǐn)?shù)據(jù)的數(shù)據(jù)量與所有數(shù)據(jù)的數(shù)據(jù)量的一半的差值小于預(yù)設(shè)值,所述所有數(shù)據(jù)為所述數(shù)據(jù)量最大的shard中存儲(chǔ)的所有數(shù)據(jù)。結(jié)合第二方面或第二方面的第一種可能實(shí)現(xiàn)的方式至第三種可能實(shí)現(xiàn)的方式中任意一種方式,在第四種可能實(shí)現(xiàn)的方式中,所述存儲(chǔ)單元,,在所述第二配置單元根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí)之后,還用于根據(jù)所述第一shard標(biāo)識(shí)和所述第二shard標(biāo)識(shí)將第二待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中;所述存儲(chǔ)單元,具體用于若存在至少兩個(gè)shard的shard標(biāo)識(shí)相同,且所述第二待存儲(chǔ)數(shù)據(jù)的所述第一余數(shù)與所述至少兩個(gè)shard的shard標(biāo)識(shí)相同,則按照輪流的方式選擇所述至少兩個(gè)shard中的一個(gè),并存儲(chǔ)所述第二待存儲(chǔ)數(shù)據(jù);或者,將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至所述至少兩個(gè)shard中的存儲(chǔ)數(shù)據(jù)量最小的shard中。結(jié)合第二方面,在第五種可能實(shí)現(xiàn)的方式中,所述第一配置單元,具體用于將預(yù)設(shè)參考區(qū)間平均分成N個(gè)子區(qū)間,每個(gè)子區(qū)間對(duì)應(yīng)一個(gè)shard,所述N為所述數(shù)據(jù)庫中包含的shard的數(shù)量,所述預(yù)設(shè)參考區(qū)間為整數(shù)區(qū)間;將各shard的所述第一shard標(biāo)識(shí)分別設(shè)置為對(duì)應(yīng)子區(qū)間中的任意數(shù)值,不同shard的所述第一shard標(biāo)識(shí)分別屬于不同子區(qū)間;將所述第一待存儲(chǔ)數(shù)據(jù)的MSISDN除以預(yù)設(shè)參數(shù),得到第二余數(shù),其中,所述預(yù)設(shè)參數(shù)大于所述數(shù)據(jù)庫中包含的shard的數(shù)量;根據(jù)所述第二余數(shù),將所述第一待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中,其中,所述shard的第一shard標(biāo)識(shí)對(duì)應(yīng)的子區(qū)間包含所述第二余數(shù)。結(jié)合第二方面的第五種可能實(shí)現(xiàn)的方式,在第六種可能實(shí)現(xiàn)的方式中,所述第一配置單元,具體用于將所述第一待存儲(chǔ)數(shù)據(jù)的MSISDN所有數(shù)位除以所述預(yù)設(shè)參數(shù);或者,將所述第一待存儲(chǔ)數(shù)據(jù)的MSISDN的低數(shù)位除以所述預(yù)設(shè)參數(shù),所述低數(shù)位的位數(shù)大于或等于預(yù)設(shè)參數(shù)的位數(shù)。結(jié)合第二方面的第五種可能實(shí)現(xiàn)的方式或第六種可能實(shí)現(xiàn)的方式,在第七種可能實(shí)現(xiàn)的方式中,所述第二配置單元,具體用于若新增加的shard的數(shù)量為1,則從所述N個(gè)子區(qū)間中獲取連續(xù)的兩個(gè)子區(qū)間的總范圍最大的兩個(gè)子區(qū)間;將所述兩個(gè)子區(qū)間合并成一個(gè)子區(qū)間;將合并的一個(gè)子區(qū)間平均分成三個(gè)子區(qū)間;將所述新增加的shard的所述第二shard標(biāo)識(shí)設(shè)置為所述三個(gè)子區(qū)間中位于中間位置的子區(qū)間中的任意數(shù)值,將所述兩個(gè)子區(qū)間中高子區(qū)間對(duì)應(yīng)的shard的第一shard標(biāo)識(shí)修改為所述三個(gè)子區(qū)間中高子區(qū)間中的任意數(shù)值,將所述兩個(gè)子區(qū)間中低子區(qū)間對(duì)應(yīng)的shard的第一shard標(biāo)識(shí)修改為所述三個(gè)子區(qū)間中低子區(qū)間中的任意數(shù)值。結(jié)合第二方面的第七種可能實(shí)現(xiàn)的方式,在第八種可能實(shí)現(xiàn)的方式中,所述遷移單元,具體用于將所述兩個(gè)子區(qū)間對(duì)應(yīng)的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至所述shard中存儲(chǔ)。結(jié)合第二方面的第五種可能實(shí)現(xiàn)的方式至第八種可能實(shí)現(xiàn)的方式中任意一種方式,在第九種可能實(shí)現(xiàn)的方式中,所述預(yù)設(shè)參數(shù)大于或等于所述數(shù)據(jù)庫中包含的shard的數(shù)量乘以250。本發(fā)明實(shí)施例提供的無共享分布式數(shù)據(jù)庫的數(shù)據(jù)分布的方法和裝置,采用上述方案后,當(dāng)數(shù)據(jù)庫進(jìn)行擴(kuò)容后,根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí);并將數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至第二shard標(biāo)識(shí)對(duì)應(yīng)的shard中存儲(chǔ)。這樣,當(dāng)shard的數(shù)量增加后,只需要將數(shù)據(jù)量最大的shard中存儲(chǔ)的第二shard標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)遷移至新增加的shard中,減少了需要進(jìn)行數(shù)據(jù)遷移的shard的數(shù)量,提高了系統(tǒng)的性能。附圖說明為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有技術(shù)中無共享分布式數(shù)據(jù)庫的結(jié)構(gòu)示意圖;圖2為本實(shí)施例提供的一種無共享分布式數(shù)據(jù)庫的數(shù)據(jù)分布的方法流程圖;圖3為本實(shí)施例提供的另一種無共享分布式數(shù)據(jù)庫的數(shù)據(jù)分布的方法流程圖;圖4為采用圖3所示的方法的情景下的無共享分布式數(shù)據(jù)庫的結(jié)構(gòu)示意圖;圖5為采用圖3所示的方法的情景下,當(dāng)數(shù)據(jù)庫進(jìn)行擴(kuò)容后的無共享分布式數(shù)據(jù)庫的結(jié)構(gòu)示意圖;圖6為本實(shí)施例提供的再一種無共享分布式數(shù)據(jù)庫的數(shù)據(jù)分布的方法流程圖;圖7為采用圖6所示的方法的情景下的無共享分布式數(shù)據(jù)庫的結(jié)構(gòu)示意圖;圖8為采用圖6所示的方法的情景下,當(dāng)數(shù)據(jù)庫進(jìn)行擴(kuò)容后的無共享分布式數(shù)據(jù)庫的結(jié)構(gòu)示意圖;圖9為本實(shí)施例提供的一種無共享分布式數(shù)據(jù)庫的數(shù)據(jù)分布的裝置結(jié)構(gòu)示意圖;圖10為本實(shí)施例提供的一種計(jì)算機(jī)的結(jié)構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。數(shù)據(jù)庫管理系統(tǒng)為上層應(yīng)用程序提供了數(shù)據(jù)管理服務(wù),隨著數(shù)據(jù)量的快速增長,單節(jié)點(diǎn)數(shù)據(jù)庫已經(jīng)不能支撐。分布式數(shù)據(jù)庫是用計(jì)算機(jī)網(wǎng)絡(luò)將物理上分散的多個(gè)數(shù)據(jù)庫單元連接起來組成的一個(gè)邏輯上統(tǒng)一的數(shù)據(jù)庫。每個(gè)被連接起來的數(shù)據(jù)庫單元稱為節(jié)點(diǎn)。分布式數(shù)據(jù)庫有一個(gè)統(tǒng)一的數(shù)據(jù)庫管理系統(tǒng)來進(jìn)行管理,稱為分布式數(shù)據(jù)庫管理系統(tǒng)。現(xiàn)有技術(shù)中,可以通過輪流放置的方式將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)在相應(yīng)的shard中。具體的,如圖1所示,每條數(shù)據(jù)被依次存儲(chǔ)在一個(gè)shard中,以此進(jìn)行循環(huán)。通??梢园凑諗?shù)據(jù)分配關(guān)鍵字的值來決定次序,例如,可以以MSISDN除以數(shù)據(jù)庫中包含的shard的數(shù)量的余數(shù)來決定數(shù)據(jù)分配到哪個(gè)節(jié)點(diǎn),具體的,余數(shù)為0所對(duì)應(yīng)的數(shù)據(jù)被分配到shard1,余數(shù)為1所對(duì)應(yīng)的數(shù)據(jù)可以被分配到shard2,以此類推。但是,輪流放置方式使得在數(shù)據(jù)庫擴(kuò)容時(shí)會(huì)帶來大量的數(shù)據(jù)遷移,以圖1所列舉的例子為例,當(dāng)數(shù)據(jù)庫從4個(gè)shard擴(kuò)容到5個(gè)shard時(shí),由于,MSISDN除以數(shù)據(jù)庫中包含的shard的數(shù)量的余數(shù)的變化,因此,Shard1中的MSISDN為13907555404的數(shù)據(jù)需要遷移到Shard4,Shard2中的MSISDN為13907556505的數(shù)據(jù)需要遷移到Shard1等等,其他不再贅述,多個(gè)shard中的數(shù)據(jù)遷移會(huì)對(duì)數(shù)據(jù)庫的性能產(chǎn)生嚴(yán)重的影響?,F(xiàn)有技術(shù)中,還可以通過區(qū)間劃分的方式將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)在相應(yīng)的shard中。區(qū)間劃分的方式已在背景技術(shù)中進(jìn)行了描述,在此不再贅述。采取劃分區(qū)間的數(shù)據(jù)存儲(chǔ)方式后,每個(gè)shard管理多個(gè)區(qū)間,當(dāng)數(shù)據(jù)庫需要擴(kuò)容時(shí),即增加數(shù)據(jù)庫中包含的shard的數(shù)量,這樣,還需要對(duì)區(qū)間進(jìn)行重新劃分,將新劃分好的區(qū)間分配給相應(yīng)的shard,由于,各shard對(duì)應(yīng)的區(qū)間變化了,因此,各shard中存儲(chǔ)的數(shù)據(jù)也隨之變化,導(dǎo)致大部分?jǐn)?shù)據(jù)需要在shard之間進(jìn)行遷移,降低了數(shù)據(jù)庫的性能。為了解決上述問題,本是實(shí)施例提供一種無共享分布式數(shù)據(jù)庫的數(shù)據(jù)分布的方法,該方法的執(zhí)行主體可以為包含有無共享分布式數(shù)據(jù)庫的電子設(shè)備,如圖2所示,可以包括:201、為數(shù)據(jù)庫中包含的數(shù)據(jù)分片shard配置第一shard標(biāo)識(shí)。每個(gè)數(shù)據(jù)庫中可以包括至少一個(gè)shard(即物理節(jié)點(diǎn)),每個(gè)shard中可以包括多可虛擬節(jié)點(diǎn),虛擬節(jié)點(diǎn)可以用于存放相應(yīng)的數(shù)據(jù),每個(gè)虛擬節(jié)點(diǎn)均可以通過一個(gè)第一shard標(biāo)識(shí)進(jìn)行標(biāo)識(shí),同一shard中的不同虛擬節(jié)點(diǎn)的第一shard標(biāo)識(shí)可能相同(即可以理解為第一shard標(biāo)識(shí)可以為一個(gè)數(shù)值),同一shard中的不同虛擬節(jié)點(diǎn)的第一shard標(biāo)識(shí)也可能不相同(即可以理解為第一shard標(biāo)識(shí)為一個(gè)區(qū)間中的任意數(shù)值)。通常的,可以根據(jù)第一shard標(biāo)識(shí)確定待存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置(即存儲(chǔ)在哪個(gè)shard中),為了為后續(xù)的存儲(chǔ)步驟作鋪墊,則首先為數(shù)據(jù)庫中包含的數(shù)據(jù)分片shard配置第一shard標(biāo)識(shí)。202、根據(jù)第一shard標(biāo)識(shí)將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中。本實(shí)施例對(duì)根據(jù)第一shard標(biāo)識(shí)將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中的方法不作限定,為本領(lǐng)域技術(shù)人員熟知的技術(shù),在此不作贅述。203、數(shù)據(jù)庫擴(kuò)容后,根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí)。每個(gè)shard均對(duì)應(yīng)一個(gè)第一shard標(biāo)識(shí)(該第一shard標(biāo)識(shí)可以為一個(gè)數(shù)值;或者,可以為某一區(qū)間中的任意數(shù)值),每個(gè)shard中存儲(chǔ)的數(shù)據(jù)量可能不同,即每個(gè)第一shard標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)量可能不同。為了使在擴(kuò)容后,減少進(jìn)行數(shù)據(jù)遷移的shard的數(shù)量,可以根據(jù)所有第一shard標(biāo)識(shí)中對(duì)應(yīng)的數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí),例如,可以將第二shard標(biāo)識(shí)設(shè)置為與數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一shard標(biāo)識(shí)相同的標(biāo)識(shí),或者,第二shard標(biāo)識(shí)可以包括數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一shard標(biāo)識(shí)中的部分?jǐn)?shù)值等。本實(shí)施例對(duì)第二shard標(biāo)識(shí)與數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一shard標(biāo)識(shí)的關(guān)系不作限定,不限于上述列舉的方式,其他方式在此不再贅述。204、將數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至第二shard標(biāo)識(shí)對(duì)應(yīng)的shard中存儲(chǔ)。其中,部分?jǐn)?shù)據(jù)為第二shard標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)。增加了新的shard后,可以為數(shù)據(jù)量最大的shard分擔(dān)數(shù)據(jù),還可以實(shí)現(xiàn)數(shù)據(jù)庫的擴(kuò)容。采用上述方案后,當(dāng)數(shù)據(jù)庫進(jìn)行擴(kuò)容后,根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí);并將數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至第二shard標(biāo)識(shí)對(duì)應(yīng)的shard中存儲(chǔ)。這樣,當(dāng)shard的數(shù)量增加后,只需要將數(shù)據(jù)量最大的shard中存儲(chǔ)的第二shard標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)遷移至新增加的shard中,減少了需要進(jìn)行數(shù)據(jù)遷移的shard的數(shù)量,增加了系統(tǒng)的性能。本實(shí)施例提供另一種無共享分布式數(shù)據(jù)庫的數(shù)據(jù)分布的方法,該方法是對(duì)圖2所示的方法的進(jìn)一步擴(kuò)展,本實(shí)施例是以通過輪流放置的方式將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)在相應(yīng)的shard中的場景為例進(jìn)行說明的,且本實(shí)施例中,一個(gè)數(shù)據(jù)庫包括4個(gè)shard,但是數(shù)據(jù)庫中包含的shard是數(shù)量不限于4個(gè),還可以為其他數(shù)量。具體的,如圖3所示,可以包括:301、將各shard的第一shard標(biāo)識(shí)設(shè)置為最小值為0的正整數(shù),且不同shard的第一shard標(biāo)識(shí)不同,相鄰shard的第一shard標(biāo)識(shí)的差為1。作為本實(shí)施例的一種實(shí)施方式,同一數(shù)據(jù)庫中的不同的shard的第一shard標(biāo)識(shí)可以分別設(shè)置為:0、1、2、3等。例如,如圖4所示,數(shù)據(jù)庫中包括四個(gè)物理節(jié)點(diǎn):shard1(物理節(jié)點(diǎn)1)、shard2(物理節(jié)點(diǎn)2)、shard3(物理節(jié)點(diǎn)3)、shard4(物理節(jié)點(diǎn)4),可以將shard1、shard2、shard3、shard4中的虛擬節(jié)點(diǎn)的第一shard標(biāo)識(shí)(為了描述簡單,后續(xù)內(nèi)容中提到的shard標(biāo)識(shí)均為虛擬節(jié)點(diǎn)的shard標(biāo)識(shí))分別設(shè)置為0、1、2、3。302、將待存儲(chǔ)數(shù)據(jù)的MSISDN除以N,得到第一余數(shù)。進(jìn)一步的,N為數(shù)據(jù)庫包括的shard的個(gè)數(shù)。在本實(shí)施例中N為4,在其他場景中,N的數(shù)值可以根據(jù)實(shí)際情況設(shè)定。作為本實(shí)施例的一種實(shí)施方式,由于是將MSISDN除以N得到的第一余數(shù),因此,本步驟中得到的所有第一余數(shù)只可能為0、或1、或2、或3,且分布較為平均。303、將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至與第一余數(shù)相同的第一shard標(biāo)識(shí)對(duì)應(yīng)的shard中。例如,如圖4所示,由于,13507555504除以4的余數(shù)為0,因此,MSISDN為13507555504的待存儲(chǔ)數(shù)據(jù)存儲(chǔ)于第一shard標(biāo)識(shí)為0的shard中,即shard1(物理節(jié)點(diǎn)1)中,其他數(shù)據(jù)不再贅述。作為本實(shí)施例的一種實(shí)施方式,由于,第一余數(shù)只可能為0、或1、或2、或3,且分布較為平均,因此,存儲(chǔ)于shard1、shard2、shard3、shard4中的數(shù)據(jù)也較為平均。304、判斷數(shù)據(jù)庫是否進(jìn)行了擴(kuò)容。若數(shù)據(jù)庫進(jìn)行了擴(kuò)容,則執(zhí)行步驟305,若數(shù)據(jù)庫未進(jìn)行擴(kuò)容,則執(zhí)行步驟302。作為本實(shí)施例的一種實(shí)施方式,數(shù)據(jù)庫進(jìn)行擴(kuò)容可以包括增加數(shù)據(jù)庫中shard的個(gè)數(shù)。例如,如圖5所示,可以將數(shù)據(jù)庫中的4個(gè)shard擴(kuò)容到5個(gè)shard,擴(kuò)容后的數(shù)據(jù)庫可以包括:shard1(物理節(jié)點(diǎn)1)、shard2(物理節(jié)點(diǎn)2)、shard3(物理節(jié)點(diǎn)3)、shard4(物理節(jié)點(diǎn)4)、shard5(物理節(jié)點(diǎn)5)。本實(shí)施例對(duì)對(duì)數(shù)據(jù)庫進(jìn)行擴(kuò)容的方法以及擴(kuò)容后增加的shard的數(shù)量不作限定,可以根據(jù)實(shí)際需要進(jìn)行設(shè)定,在此不再贅述。305、將第二shard標(biāo)識(shí)確定為與數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一shard標(biāo)識(shí)相同的shard標(biāo)識(shí)。進(jìn)一步的,第二shard標(biāo)識(shí)為新增加的shard的shard標(biāo)識(shí)。為了減小數(shù)據(jù)量最大的shard中存儲(chǔ)的數(shù)據(jù)量,則可以將第二shard標(biāo)識(shí)確定為與數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一shard標(biāo)識(shí)相同的shard標(biāo)識(shí),這樣,使得新增加的shard可以分擔(dān)些數(shù)據(jù)量最大的shard中存儲(chǔ)的數(shù)據(jù)。在對(duì)數(shù)據(jù)庫進(jìn)行擴(kuò)容之后,可以通過兩個(gè)shard來存儲(chǔ)相應(yīng)的標(biāo)識(shí)對(duì)應(yīng)的待存儲(chǔ)數(shù)據(jù)。例如,如圖5所示,若將數(shù)據(jù)量最大的shard確定為shard2(物理節(jié)點(diǎn)2),且shard2的shard標(biāo)識(shí)為1,則可以將新增加的shard5(物理節(jié)點(diǎn)5)的shard標(biāo)識(shí)(即第二shard標(biāo)識(shí))也設(shè)置為1。306、將數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至第二shard標(biāo)識(shí)對(duì)應(yīng)的shard中存儲(chǔ)。其中,部分?jǐn)?shù)據(jù)可以為第二shard標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)。作為本實(shí)施例的一種實(shí)施方式,在執(zhí)行數(shù)據(jù)遷移之前,第二shard標(biāo)識(shí)對(duì)應(yīng)的全部或部分?jǐn)?shù)據(jù)可以是存儲(chǔ)于數(shù)據(jù)量最大的shard中的。在為新增加的shard設(shè)置完第二shard標(biāo)識(shí)后,由于,第二shard標(biāo)識(shí)與數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一shard標(biāo)識(shí)相同,因此,還可以將將數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至第二shard標(biāo)識(shí)對(duì)應(yīng)的shard中存儲(chǔ),這樣,可以更好的對(duì)數(shù)據(jù)庫包含的shard存儲(chǔ)的數(shù)據(jù)量進(jìn)行均衡。進(jìn)一步的,部分?jǐn)?shù)據(jù)的數(shù)據(jù)量與所有數(shù)據(jù)的數(shù)據(jù)量的一半的差值小于預(yù)設(shè)值,所有數(shù)據(jù)為數(shù)據(jù)量最大的shard中存儲(chǔ)的所有數(shù)據(jù)。例如,如圖5所示,若將數(shù)據(jù)量最大的shard確定為shard2(物理節(jié)點(diǎn)2),則可以將shard2中的部分?jǐn)?shù)據(jù)遷移到shard5(物理節(jié)點(diǎn)5)中。本實(shí)施例對(duì)預(yù)設(shè)值不作限定,可以根據(jù)實(shí)際需要進(jìn)行設(shè)定,例如,優(yōu)選的,部分?jǐn)?shù)據(jù)的數(shù)據(jù)量可以為數(shù)據(jù)量最大的shard中存儲(chǔ)的所有數(shù)據(jù)的數(shù)據(jù)量的一半之間的差值為0(換言之,在數(shù)據(jù)移動(dòng)后,是的新增加的shard中存儲(chǔ)的數(shù)據(jù)量與數(shù)據(jù)量最大的shard中存儲(chǔ)的數(shù)據(jù)量相同),其他情況在此不再贅述。這樣,本場景中,在數(shù)據(jù)庫進(jìn)行擴(kuò)容后,只需要將其中一個(gè)shard中存儲(chǔ)的數(shù)據(jù)遷移至新增加的shard中,避免了遷移多個(gè)shard中存儲(chǔ)的數(shù)據(jù),增加了數(shù)據(jù)庫的性能。307、根據(jù)擴(kuò)容后的shard的shard標(biāo)識(shí),將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中。作為本實(shí)施例的一種實(shí)施方式,在數(shù)據(jù)庫擴(kuò)容后,還可以按照步驟302至步驟303中記載的方法將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的5個(gè)shard中。具體的,如圖5所示,可以將第一余數(shù)為0的所對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至shard1(物理節(jié)點(diǎn)1)中,將第一余數(shù)為1的所對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至shard2(物理節(jié)點(diǎn)2)和shard5(物理節(jié)點(diǎn)5)中,將第一余數(shù)為2的所對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至shard3(物理節(jié)點(diǎn)3)中,將第一余數(shù)為3的所對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至shard4(物理節(jié)點(diǎn)4)中。作為本實(shí)施例的一種實(shí)施方式,由于將第二shard標(biāo)識(shí)確定為與數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一shard標(biāo)識(shí)相同的shard標(biāo)識(shí),因此,數(shù)據(jù)庫中會(huì)存在與新增加的shard的shard標(biāo)識(shí)相同的shard。此時(shí),根據(jù)擴(kuò)容后的shard的shard標(biāo)識(shí),將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中可以但不限于包括:若存在至少兩個(gè)shard的shard標(biāo)識(shí)相同,且待存儲(chǔ)數(shù)據(jù)的第一余數(shù)與至少兩個(gè)shard的shard標(biāo)識(shí)相同,則將待存儲(chǔ)數(shù)據(jù)輪流存儲(chǔ)至兩個(gè)shard中;或者,將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至兩個(gè)shard中的存儲(chǔ)的數(shù)據(jù)量最小的shard中。例如,若shard2和shard5的shard標(biāo)識(shí)均為1,則可以將第一余數(shù)為1的所對(duì)應(yīng)的數(shù)據(jù)輪流存儲(chǔ)至shard2和shard5中;或者,將第一余數(shù)為1的所對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)于shard2和shard5中存儲(chǔ)的數(shù)據(jù)量最小的shard中。本實(shí)施例對(duì)區(qū)分shard標(biāo)識(shí)相同的shard的方法不作限定,可以根據(jù)實(shí)際需要進(jìn)行設(shè)定,例如,可以根據(jù)shard的物理節(jié)點(diǎn)標(biāo)識(shí)來區(qū)分,其他方法在此不再贅述。值得說明的是,本實(shí)施例提供的第一shard標(biāo)識(shí)、第二shard標(biāo)識(shí)可以理解為用于標(biāo)識(shí)不同shard的shard標(biāo)識(shí),屬于相同屬性的名詞。采用上述方案后,當(dāng)數(shù)據(jù)庫進(jìn)行擴(kuò)容后,將第二shard標(biāo)識(shí)確定為與數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一shard標(biāo)識(shí)相同的shard標(biāo)識(shí);并只將數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至新增加的shard中存儲(chǔ),減少了需要進(jìn)行數(shù)據(jù)遷移的shard的數(shù)量,增加了系統(tǒng)的性能。值得說明的是,當(dāng)通過區(qū)間劃分的方式將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)在相應(yīng)的shard中時(shí),現(xiàn)有技術(shù)還可以帶來其他技術(shù)問題,可以包括:當(dāng)對(duì)數(shù)據(jù)庫執(zhí)行查詢數(shù)據(jù)或者寫入數(shù)據(jù)操作時(shí),需要從相應(yīng)的shard中讀寫目標(biāo)數(shù)據(jù),這樣,導(dǎo)致獲取目標(biāo)數(shù)據(jù)的過程較為復(fù)雜,降低了系統(tǒng)性能,例如,數(shù)據(jù)庫有m個(gè)shard,每個(gè)shard上面有n個(gè)區(qū)間,因此,獲取目標(biāo)數(shù)據(jù)最多需要比較m*n次。為了解決上述提出的所有問題,本實(shí)施例提供另一種無共享分布式數(shù)據(jù)庫的數(shù)據(jù)分布的方法,該方法是對(duì)圖2所示的方法的進(jìn)一步擴(kuò)展,且本實(shí)施例是以區(qū)間劃分的方式將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)在相應(yīng)的shard中的場景為例進(jìn)行說明的,且本實(shí)施例中,一個(gè)數(shù)據(jù)庫包括4個(gè)shard,但是數(shù)據(jù)庫中包含的shard是數(shù)量不限于4個(gè),還可以為其他數(shù)量。具體的,如圖6所示,可以包括:601、將預(yù)設(shè)參考區(qū)間平均分成N個(gè)子區(qū)間。進(jìn)一步的,N為數(shù)據(jù)庫中包含的shard的數(shù)量,預(yù)設(shè)參考區(qū)間可以為從0到預(yù)設(shè)參數(shù)減1的整數(shù)區(qū)間,預(yù)設(shè)參數(shù)大于數(shù)據(jù)庫中包含的shard的數(shù)量。本實(shí)施例以預(yù)設(shè)參數(shù)為1000為例進(jìn)行說明。本實(shí)施例對(duì)預(yù)設(shè)參數(shù)的數(shù)值不作限定,可以根據(jù)實(shí)際需要進(jìn)行設(shè)定,并不限于上述列舉的例子,例如,可以為:預(yù)設(shè)參數(shù)大于或等于數(shù)據(jù)庫中包含的shard的數(shù)量乘以250。602、將各shard的第一shard標(biāo)識(shí)分別設(shè)置為一個(gè)子區(qū)間中的任意數(shù)值,不同shard的第一shard標(biāo)識(shí)分別屬于不同子區(qū)間。作為本實(shí)施例的一種實(shí)施方式,可以將shard1(物理節(jié)點(diǎn)1)的第一shard標(biāo)識(shí)設(shè)置為子區(qū)間[0-249]中的任意數(shù)值,shard2(物理節(jié)點(diǎn)2)的第一shard標(biāo)識(shí)可以為子區(qū)間[250-499]中的任意數(shù)值,shard3(物理節(jié)點(diǎn)3)的第一shard標(biāo)識(shí)可以為子區(qū)間[500-749]中的任意數(shù)值,shard4(物理節(jié)點(diǎn)4)的第一shard標(biāo)識(shí)可以為子區(qū)間[750-999]中的任意數(shù)值。603、將待存儲(chǔ)數(shù)據(jù)的MSISDN除以預(yù)設(shè)參數(shù),得到第二余數(shù)。進(jìn)一步的,將待存儲(chǔ)數(shù)據(jù)的MSISDN除以預(yù)設(shè)參數(shù)可以但不限于包括:將待存儲(chǔ)數(shù)據(jù)的MSISDN所有數(shù)位除以預(yù)設(shè)參數(shù);或者,將待存儲(chǔ)數(shù)據(jù)的MSISDN的低數(shù)位除以預(yù)設(shè)參數(shù),低數(shù)位的位數(shù)大于或等于預(yù)設(shè)參數(shù)的位數(shù)。作為本實(shí)施例的一種實(shí)施方式,可以但不限于將待存儲(chǔ)數(shù)據(jù)的MSISDN的低4位除以預(yù)設(shè)參數(shù)1000。604、將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至包含第二余數(shù)的第一shard標(biāo)識(shí)對(duì)應(yīng)的shard中。例如,如圖7所示,MSISDN為13207552101的低四位2101除以1000,得到的余數(shù)為101,由于101在子區(qū)間[0-249]中,因此將MSISDN為13207552101所對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至shard1(物理節(jié)點(diǎn)1)中,其他數(shù)據(jù)不再贅述。605、判斷數(shù)據(jù)庫是否進(jìn)行了擴(kuò)容。若數(shù)據(jù)庫進(jìn)行了擴(kuò)容,則執(zhí)行步驟606,若數(shù)據(jù)庫未進(jìn)行擴(kuò)容,則執(zhí)行步驟603。作為本實(shí)施例的一種實(shí)施方式,數(shù)據(jù)庫進(jìn)行擴(kuò)容可以包括增加數(shù)據(jù)庫中shard的個(gè)數(shù)。例如,如圖8所示,可以將數(shù)據(jù)庫中的4個(gè)shard擴(kuò)容到5個(gè)shard,擴(kuò)容后的數(shù)據(jù)庫可以包括:shard1(物理節(jié)點(diǎn)1)、shard2(物理節(jié)點(diǎn)2)、shard3(物理節(jié)點(diǎn)3)、shard4(物理節(jié)點(diǎn)4)、shard5(物理節(jié)點(diǎn)5)。本實(shí)施例以數(shù)據(jù)庫增加了一個(gè)shard為例進(jìn)行說明。606、從N個(gè)子區(qū)間中獲取連續(xù)的兩個(gè)子區(qū)間的總范圍最大的兩個(gè)子區(qū)間。作為本實(shí)施例的一種實(shí)施方式,若子區(qū)間的范圍相同,則獲取兩個(gè)連續(xù)的低子區(qū)間,例如,如圖7所示,可以獲取shard1(物理節(jié)點(diǎn)1)對(duì)應(yīng)的子區(qū)間[0-249]和shard2(物理節(jié)點(diǎn)2)對(duì)應(yīng)的子區(qū)間[250-499]。607、將兩個(gè)子區(qū)間合并成一個(gè)子區(qū)間。作為本實(shí)施例的一種實(shí)施方式,將子區(qū)間[0-249]和子區(qū)間[250-499]合并后得到一個(gè)子區(qū)間[0-499]。608、將合并的一個(gè)子區(qū)間平均分成三個(gè)子區(qū)間。作為本實(shí)施例的一種實(shí)施方式,將一個(gè)子區(qū)間[0-499]平均分成三個(gè)子區(qū)間,可以包括:[0-166]、[167-333]、[334-499]。本實(shí)施例對(duì)子區(qū)間的劃分方式不作限定,不限于上述列舉的具體例子,其他例子在此不再贅述。609、將新增加的shard的第二shard標(biāo)識(shí)設(shè)置為三個(gè)子區(qū)間中位于中間位置的子區(qū)間中的任意數(shù)值,并按照兩個(gè)子區(qū)間由高到低的順序依次將兩個(gè)子區(qū)間對(duì)應(yīng)的shard的第一shard標(biāo)識(shí)修改為三個(gè)子區(qū)間中位于兩邊位置的高子區(qū)間中的任意數(shù)值和低子區(qū)間中的任意數(shù)值。作為本實(shí)施例的一種實(shí)施方式,如圖8所示,可以將新增加的shard5(物理節(jié)點(diǎn)5)的shard標(biāo)識(shí)(即第二shard標(biāo)識(shí))設(shè)置為子區(qū)間[167-333]中的任意數(shù)值,將shard1(物理節(jié)點(diǎn)1)的shard標(biāo)識(shí)修改為子區(qū)間[0-166]中的任意數(shù)值,將shard2(物理節(jié)點(diǎn)2)的shard標(biāo)識(shí)修改為子區(qū)間[334-499]中的任意數(shù)值。此時(shí),shard1的shard標(biāo)識(shí)可以為子區(qū)間[0-166]中的任意數(shù)值,shard2的shard標(biāo)識(shí)可以為子區(qū)間[334-499]中的任意數(shù)值,shard3的shard標(biāo)識(shí)可以為子區(qū)間[500-749]中的任意數(shù)值,shard4(物理節(jié)點(diǎn)4)的shard標(biāo)識(shí)可以為子區(qū)間[750-999]中的任意數(shù)值,shard5(物理節(jié)點(diǎn)5)的shard標(biāo)識(shí)可以為子區(qū)間[167-333]中的任意數(shù)值。610、將兩個(gè)子區(qū)間對(duì)應(yīng)的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至新增加的shard中存儲(chǔ)。作為本實(shí)施例的一種實(shí)施方式,如圖8所示,可以將shard1(物理節(jié)點(diǎn)1)與shard2(物理節(jié)點(diǎn)2)中的數(shù)據(jù)遷移至shard5(物理節(jié)點(diǎn)5)中存儲(chǔ),具體的,可以是將shard1中與區(qū)間[167-249]對(duì)應(yīng)的數(shù)據(jù)遷移至shard5中,將shard2中與區(qū)間[250-333]對(duì)應(yīng)的數(shù)據(jù)遷移至shard5中。這樣,在數(shù)據(jù)庫進(jìn)行擴(kuò)容后,只需要將shard1和shard2中的相應(yīng)數(shù)據(jù)遷移至shard5中,避免了遷移多個(gè)shard中存儲(chǔ)的數(shù)據(jù),同時(shí)不會(huì)使得數(shù)據(jù)庫中各shard之間存儲(chǔ)的數(shù)據(jù)量相差過大,使數(shù)據(jù)庫中各shard存儲(chǔ)的數(shù)據(jù)量平衡,增加了系統(tǒng)的性能。611、根據(jù)擴(kuò)容后的shard的shard標(biāo)識(shí),將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中。作為本實(shí)施例的一種實(shí)施方式,在數(shù)據(jù)庫擴(kuò)容后,還可以按照步驟603至步驟604中記載的方法將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的5個(gè)shard中。具體的,如圖8所示,可以將屬于子區(qū)間[0-166]的第二余數(shù)所對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至shard1中,可以將屬于子區(qū)間[334-499]的第二余數(shù)所對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至shard2中,可以將屬于子區(qū)間[500-749]的第二余數(shù)所對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至shard3中,可以將屬于子區(qū)間[750-999]的第二余數(shù)所對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至shard4中,可以將屬于子區(qū)間[167-333]的第二余數(shù)所對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至shard5中。值得說明的是,本實(shí)施例提供的第一shard標(biāo)識(shí)、第二shard標(biāo)識(shí)均可以理解為用于標(biāo)識(shí)不同shard的shard標(biāo)識(shí),屬于相同屬性的名詞。采用上述方案后,當(dāng)數(shù)據(jù)庫進(jìn)行擴(kuò)容后,將第二shard標(biāo)識(shí)設(shè)置為shard1對(duì)應(yīng)的shard標(biāo)識(shí)與shard2對(duì)應(yīng)的標(biāo)識(shí)的總區(qū)間中的一個(gè)子區(qū)間;并只將shard1中存儲(chǔ)的和shard2中存儲(chǔ)的,且是與第二shard標(biāo)識(shí)對(duì)應(yīng)的部分?jǐn)?shù)據(jù)遷移至新增加的shard中存儲(chǔ),減少了需要進(jìn)行數(shù)據(jù)遷移的shard的數(shù)量,增加了系統(tǒng)的性能。下面提供一些裝置實(shí)施例,該裝置實(shí)施例分別與上述提供的方法實(shí)施例相對(duì)應(yīng)。本實(shí)施例提供一種無共享分布式數(shù)據(jù)庫的數(shù)據(jù)分布的裝置,如圖9所示,包括:第一配置單元91,用于為數(shù)據(jù)庫中包含的數(shù)據(jù)分片shard配置第一shard標(biāo)識(shí);存儲(chǔ)單元92,用于根據(jù)第一shard標(biāo)識(shí)將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中;第二配置單元93,用于數(shù)據(jù)庫擴(kuò)容后,根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí);遷移單元94,用于將數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至第二shard標(biāo)識(shí)對(duì)應(yīng)的shard中存儲(chǔ)。進(jìn)一步的,第一配置單元91,具體用于將各shard的第一shard標(biāo)識(shí)設(shè)置為最小值為0的正整數(shù),且不同shard的第一shard標(biāo)識(shí)不同,相鄰shard的第一shard標(biāo)識(shí)的差為1;存儲(chǔ)單元92,具體用于將待存儲(chǔ)數(shù)據(jù)的移動(dòng)臺(tái)國際綜合業(yè)務(wù)數(shù)字網(wǎng)號(hào)碼MSISDN除以N,得到第一余數(shù),N為數(shù)據(jù)庫包括的shard的個(gè)數(shù);將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至與第一余數(shù)相同的第一shard標(biāo)識(shí)對(duì)應(yīng)的shard中。進(jìn)一步的,第二配置單元93,具體用于將第二shard標(biāo)識(shí)確定為與數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一shard標(biāo)識(shí)相同的shard標(biāo)識(shí)。進(jìn)一步的,遷移單元94遷移的部分?jǐn)?shù)據(jù)的數(shù)據(jù)量與所有數(shù)據(jù)的數(shù)據(jù)量的一半的差值小于預(yù)設(shè)值,所有數(shù)據(jù)為數(shù)據(jù)量最大的shard中存儲(chǔ)的所有數(shù)據(jù)。進(jìn)一步的,存儲(chǔ)單元92,具體用于在數(shù)據(jù)庫擴(kuò)容,且第二配置單元根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí)之后,根據(jù)shard標(biāo)識(shí)將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中,其中,shard標(biāo)識(shí)包括第一shard標(biāo)識(shí)和第二shard標(biāo)識(shí);存儲(chǔ)單元92,具體用于若存在至少兩個(gè)shard的shard標(biāo)識(shí)相同,且待存儲(chǔ)數(shù)據(jù)的第一余數(shù)與至少兩個(gè)shard的shard標(biāo)識(shí)相同,則將待存儲(chǔ)數(shù)據(jù)輪流存儲(chǔ)至兩個(gè)shard中;或者,將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至兩個(gè)shard中的存儲(chǔ)的數(shù)據(jù)量最小的shard中。進(jìn)一步的,第一配置單元91,具體用于將預(yù)設(shè)參考區(qū)間平均分成N個(gè)子區(qū)間,N為數(shù)據(jù)庫中包含的shard的數(shù)量,預(yù)設(shè)參考區(qū)間為從0到預(yù)設(shè)參數(shù)減1的整數(shù)區(qū)間,預(yù)設(shè)參數(shù)大于數(shù)據(jù)庫中包含的shard的數(shù)量;將各shard的第一shard標(biāo)識(shí)分別設(shè)置為一個(gè)子區(qū)間中的任意數(shù)值,不同shard的第一shard標(biāo)識(shí)分別屬于不同子區(qū)間;將待存儲(chǔ)數(shù)據(jù)的MSISDN除以預(yù)設(shè)參數(shù),得到第二余數(shù);將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至包含第二余數(shù)的第一shard標(biāo)識(shí)對(duì)應(yīng)的shard中。進(jìn)一步的,第一配置單元91,具體用于將待存儲(chǔ)數(shù)據(jù)的MSISDN所有數(shù)位除以預(yù)設(shè)參數(shù);或者,將待存儲(chǔ)數(shù)據(jù)的MSISDN的低數(shù)位除以預(yù)設(shè)參數(shù),低數(shù)位的位數(shù)大于或等于預(yù)設(shè)參數(shù)的位數(shù)。進(jìn)一步的,第二配置單元93,具體用于從N個(gè)子區(qū)間中獲取連續(xù)的兩個(gè)子區(qū)間的總范圍最大的兩個(gè)子區(qū)間;將兩個(gè)子區(qū)間合并成一個(gè)子區(qū)間;將合并的一個(gè)子區(qū)間平均分成三個(gè)子區(qū)間;將新增加的shard的第二shard標(biāo)識(shí)設(shè)置為三個(gè)子區(qū)間中位于中間位置的子區(qū)間中的任意數(shù)值,并按照兩個(gè)子區(qū)間由高到低的順序依次將兩個(gè)子區(qū)間對(duì)應(yīng)的shard的第一shard標(biāo)識(shí)修改為三個(gè)子區(qū)間中位于兩邊位置的高子區(qū)間中的任意數(shù)值和低子區(qū)間中的任意數(shù)值。進(jìn)一步的,遷移單元94,具體用于將兩個(gè)子區(qū)間對(duì)應(yīng)的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至新增加的shard中存儲(chǔ)。進(jìn)一步的,預(yù)設(shè)參數(shù)可以大于或等于數(shù)據(jù)庫中包含的shard的數(shù)量乘以250。采用上述方案后,當(dāng)數(shù)據(jù)庫進(jìn)行擴(kuò)容后,可以根據(jù)數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一hard標(biāo)識(shí)為新增加的shard配置第二shard標(biāo)識(shí);并只將數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至新增加的shard中存儲(chǔ),減少了需要進(jìn)行數(shù)據(jù)遷移的shard的數(shù)量,增加了系統(tǒng)的性能。如圖10所示,本發(fā)明實(shí)施例提供一種計(jì)算機(jī)1,該計(jì)算機(jī)1包括:至少一個(gè)處理器15,例如CPU,至少一個(gè)輸出接口16或者其他用戶接口17,存儲(chǔ)器18,至少一個(gè)通信總線19。通信總線19用于實(shí)現(xiàn)這些組件之間的連接通信。該計(jì)算機(jī)1可選的包含其他用戶接口17,包括顯示器,鍵盤或者點(diǎn)擊設(shè)備(例如,鼠標(biāo),軌跡球(trackball),觸感板或者觸感顯示屏)。存儲(chǔ)器18可能包含高速RAM(RandomAccessMemory,隨機(jī)存取存儲(chǔ)器),也可能還包括非不穩(wěn)定的存儲(chǔ)器(non-volatilememory),例如至少一個(gè)磁盤存儲(chǔ)器。存儲(chǔ)器18可選的可以包含至少一個(gè)位于遠(yuǎn)離前述處理器15的存儲(chǔ)裝置。在一些實(shí)施方式中,存儲(chǔ)器18存儲(chǔ)了如下的元素,可執(zhí)行模塊或者數(shù)據(jù)結(jié)構(gòu),或者他們的子集,或者他們的擴(kuò)展集:操作系統(tǒng)180,包含各種系統(tǒng)程序,用于實(shí)現(xiàn)各種基礎(chǔ)業(yè)務(wù)以及處理基于硬件的任務(wù)。應(yīng)用程序181,包含各種應(yīng)用程序,用于實(shí)現(xiàn)各種應(yīng)用業(yè)務(wù)。應(yīng)用程序181中可以但不限于包括:第一配置單元,用于為數(shù)據(jù)庫中包含的數(shù)據(jù)分片shard配置第一shard標(biāo)識(shí);存儲(chǔ)單元,用于根據(jù)第一shard標(biāo)識(shí)將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中;第二配置單元,用于數(shù)據(jù)庫擴(kuò)容后,根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí);遷移單元,用于將數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至第二shard標(biāo)識(shí)對(duì)應(yīng)的shard中存儲(chǔ)。進(jìn)一步的,第一配置單元,具體用于將各shard的第一shard標(biāo)識(shí)設(shè)置為最小值為0的正整數(shù),且不同shard的第一shard標(biāo)識(shí)不同,相鄰shard的第一shard標(biāo)識(shí)的差為1;存儲(chǔ)單元,具體用于將待存儲(chǔ)數(shù)據(jù)的移動(dòng)臺(tái)國際綜合業(yè)務(wù)數(shù)字網(wǎng)號(hào)碼MSISDN除以N,得到第一余數(shù),N為數(shù)據(jù)庫包括的shard的個(gè)數(shù);將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至與第一余數(shù)相同的第一shard標(biāo)識(shí)對(duì)應(yīng)的shard中。進(jìn)一步的,第二配置單元,具體用于將第二shard標(biāo)識(shí)確定為與數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一shard標(biāo)識(shí)相同的shard標(biāo)識(shí)。進(jìn)一步的,遷移單元遷移的部分?jǐn)?shù)據(jù)的數(shù)據(jù)量與所有數(shù)據(jù)的數(shù)據(jù)量的一半的差值小于預(yù)設(shè)值,所有數(shù)據(jù)為數(shù)據(jù)量最大的shard中存儲(chǔ)的所有數(shù)據(jù)。進(jìn)一步的,存儲(chǔ)單元,具體用于在數(shù)據(jù)庫擴(kuò)容,且第二配置單元根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí)之后,根據(jù)shard標(biāo)識(shí)將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中,其中,shard標(biāo)識(shí)包括第一shard標(biāo)識(shí)和第二shard標(biāo)識(shí);存儲(chǔ)單元,具體用于若存在至少兩個(gè)shard的shard標(biāo)識(shí)相同,且待存儲(chǔ)數(shù)據(jù)的第一余數(shù)與至少兩個(gè)shard的shard標(biāo)識(shí)相同,則將待存儲(chǔ)數(shù)據(jù)輪流存儲(chǔ)至兩個(gè)shard中;或者,將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至兩個(gè)shard中的存儲(chǔ)的數(shù)據(jù)量最小的shard中。進(jìn)一步的,第一配置單元,具體用于將預(yù)設(shè)參考區(qū)間平均分成N個(gè)子區(qū)間,N為數(shù)據(jù)庫中包含的shard的數(shù)量,預(yù)設(shè)參考區(qū)間為從0到預(yù)設(shè)參數(shù)減1的整數(shù)區(qū)間,預(yù)設(shè)參數(shù)大于數(shù)據(jù)庫中包含的shard的數(shù)量;將各shard的第一shard標(biāo)識(shí)分別設(shè)置為一個(gè)子區(qū)間中的任意數(shù)值,不同shard的第一shard標(biāo)識(shí)分別屬于不同子區(qū)間;將待存儲(chǔ)數(shù)據(jù)的MSISDN除以預(yù)設(shè)參數(shù),得到第二余數(shù);將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至包含第二余數(shù)的第一shard標(biāo)識(shí)對(duì)應(yīng)的shard中。進(jìn)一步的,第一配置單元,具體用于將待存儲(chǔ)數(shù)據(jù)的MSISDN所有數(shù)位除以預(yù)設(shè)參數(shù);或者,將待存儲(chǔ)數(shù)據(jù)的MSISDN的低數(shù)位除以預(yù)設(shè)參數(shù),低數(shù)位的位數(shù)大于或等于預(yù)設(shè)參數(shù)的位數(shù)。進(jìn)一步的,第二配置單元,具體用于從N個(gè)子區(qū)間中獲取連續(xù)的兩個(gè)子區(qū)間的總范圍最大的兩個(gè)子區(qū)間;將兩個(gè)子區(qū)間合并成一個(gè)子區(qū)間;將合并的一個(gè)子區(qū)間平均分成三個(gè)子區(qū)間;將新增加的shard的第二shard標(biāo)識(shí)設(shè)置為三個(gè)子區(qū)間中位于中間位置的子區(qū)間中的任意數(shù)值,并按照兩個(gè)子區(qū)間由高到低的順序依次將兩個(gè)子區(qū)間對(duì)應(yīng)的shard的第一shard標(biāo)識(shí)修改為三個(gè)子區(qū)間中位于兩邊位置的高子區(qū)間中的任意數(shù)值和低子區(qū)間中的任意數(shù)值。進(jìn)一步的,遷移單元,具體用于將兩個(gè)子區(qū)間對(duì)應(yīng)的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至新增加的shard中存儲(chǔ)。進(jìn)一步的,預(yù)設(shè)參數(shù)大于或等于數(shù)據(jù)庫中包含的shard的數(shù)量乘以250。在本發(fā)明實(shí)施例中,通過調(diào)用存儲(chǔ)器18中存儲(chǔ)的程序或指令,處理器15用于:為數(shù)據(jù)庫中包含的數(shù)據(jù)分片shard配置第一shard標(biāo)識(shí);根據(jù)第一shard標(biāo)識(shí)將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中;數(shù)據(jù)庫擴(kuò)容后,根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí);將數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至第二shard標(biāo)識(shí)對(duì)應(yīng)的shard中存儲(chǔ)。進(jìn)一步的,處理器15,具體用于將各shard的第一shard標(biāo)識(shí)設(shè)置為最小值為0的正整數(shù),且不同shard的第一shard標(biāo)識(shí)不同,相鄰shard的第一shard標(biāo)識(shí)的差為1;根據(jù)第一shard標(biāo)識(shí)將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中包括:將待存儲(chǔ)數(shù)據(jù)的移動(dòng)臺(tái)國際綜合業(yè)務(wù)數(shù)字網(wǎng)號(hào)碼MSISDN除以N,得到第一余數(shù),N為數(shù)據(jù)庫包括的shard的個(gè)數(shù);將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至與第一余數(shù)相同的第一shard標(biāo)識(shí)對(duì)應(yīng)的shard中。進(jìn)一步的,處理器15,具體用于將第二shard標(biāo)識(shí)確定為與數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一shard標(biāo)識(shí)相同的shard標(biāo)識(shí)。進(jìn)一步的,部分?jǐn)?shù)據(jù)的數(shù)據(jù)量與所有數(shù)據(jù)的數(shù)據(jù)量的一半的差值小于預(yù)設(shè)值,所有數(shù)據(jù)為數(shù)據(jù)量最大的shard中存儲(chǔ)的所有數(shù)據(jù)。進(jìn)一步的,處理器15,還用于在數(shù)據(jù)庫擴(kuò)容,且根據(jù)數(shù)據(jù)量最大的shard為新增加的shard配置第二shard標(biāo)識(shí)之后,根據(jù)shard標(biāo)識(shí)將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至相應(yīng)的shard中,其中,shard標(biāo)識(shí)包括第一shard標(biāo)識(shí)和第二shard標(biāo)識(shí);若存在至少兩個(gè)shard的shard標(biāo)識(shí)相同,且待存儲(chǔ)數(shù)據(jù)的第一余數(shù)與至少兩個(gè)shard的shard標(biāo)識(shí)相同,則將待存儲(chǔ)數(shù)據(jù)輪流存儲(chǔ)至兩個(gè)shard中;或者,將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至兩個(gè)shard中的存儲(chǔ)的數(shù)據(jù)量最小的shard中。進(jìn)一步的,處理器15,具體用于將預(yù)設(shè)參考區(qū)間平均分成N個(gè)子區(qū)間,N為數(shù)據(jù)庫中包含的shard的數(shù)量,預(yù)設(shè)參考區(qū)間為從0到預(yù)設(shè)參數(shù)減1的整數(shù)區(qū)間,預(yù)設(shè)參數(shù)大于數(shù)據(jù)庫中包含的shard的數(shù)量;將各shard的第一shard標(biāo)識(shí)分別設(shè)置為一個(gè)子區(qū)間中的任意數(shù)值,不同shard的第一shard標(biāo)識(shí)分別屬于不同子區(qū)間;將待存儲(chǔ)數(shù)據(jù)的MSISDN除以預(yù)設(shè)參數(shù),得到第二余數(shù);將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)至包含第二余數(shù)的第一shard標(biāo)識(shí)對(duì)應(yīng)的shard中。進(jìn)一步的,處理器15,具體用于將待存儲(chǔ)數(shù)據(jù)的MSISDN所有數(shù)位除以預(yù)設(shè)參數(shù);或者,將待存儲(chǔ)數(shù)據(jù)的MSISDN的低數(shù)位除以預(yù)設(shè)參數(shù),低數(shù)位的位數(shù)大于或等于預(yù)設(shè)參數(shù)的位數(shù)。進(jìn)一步的,處理器15,具體用于若新增加的shard的數(shù)量為1,則從N個(gè)子區(qū)間中獲取連續(xù)的兩個(gè)子區(qū)間的總范圍最大的兩個(gè)子區(qū)間;將兩個(gè)子區(qū)間合并成一個(gè)子區(qū)間;將合并的一個(gè)子區(qū)間平均分成三個(gè)子區(qū)間;將新增加的shard的第二shard標(biāo)識(shí)設(shè)置為三個(gè)子區(qū)間中位于中間位置的子區(qū)間中的任意數(shù)值,并按照兩個(gè)子區(qū)間由高到低的順序依次將兩個(gè)子區(qū)間對(duì)應(yīng)的shard的第一shard標(biāo)識(shí)修改為三個(gè)子區(qū)間中位于兩邊位置的高子區(qū)間中的任意數(shù)值和低子區(qū)間中的任意數(shù)值。進(jìn)一步的,處理器15,具體用于將兩個(gè)子區(qū)間對(duì)應(yīng)的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至新增加的shard中存儲(chǔ)。進(jìn)一步的,預(yù)設(shè)參數(shù)大于或等于數(shù)據(jù)庫中包含的shard的數(shù)量乘以250。采用上述方案后,當(dāng)數(shù)據(jù)庫進(jìn)行擴(kuò)容后,可以根據(jù)數(shù)據(jù)量最大的shard對(duì)應(yīng)的第一hard標(biāo)識(shí)為新增加的shard配置第二shard標(biāo)識(shí);并只將數(shù)據(jù)量最大的shard中存儲(chǔ)的部分?jǐn)?shù)據(jù)遷移至新增加的shard中存儲(chǔ),減少了需要進(jìn)行數(shù)據(jù)遷移的shard的數(shù)量,增加了系統(tǒng)的性能。通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤,硬盤或光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。