鍍金池/ 問答/數(shù)據(jù)庫/ mysql的分片技術(shù)中的動(dòng)態(tài)分配是怎么實(shí)現(xiàn)的?

mysql的分片技術(shù)中的動(dòng)態(tài)分配是怎么實(shí)現(xiàn)的?

看mysql的數(shù)據(jù)庫分片的相關(guān)知識的時(shí)候看到說動(dòng)態(tài)分配是用一個(gè)字典表存儲(chǔ)分區(qū)鍵值和分片號,通過鍵值可以查到分片號,但是沒有說清楚新加的分區(qū)鍵如何在這個(gè)字典表里沒找到的情況下是怎么分配分片號的,是不是還是像固定分片的那種方式取模或者哈希一致性?但是如果是這么分配分片號的話和固定分配還有什么區(qū)別,為什么要存到一個(gè)字典表里?難道是為了查詢的時(shí)候能先和字典表匹配減少查詢分片的數(shù)量?有人了解這一塊嗎?

回答
編輯回答
假灑脫

我的理解是,動(dòng)態(tài)分片是為了解決分片數(shù)據(jù)不均勻。
1、創(chuàng)建字典表是為了后續(xù)加進(jìn)來的數(shù)據(jù)可以動(dòng)態(tài)分片使得數(shù)據(jù)更均勻;
2、至于什么叫均勻,就是將新加入的數(shù)據(jù)分配到當(dāng)前數(shù)據(jù)量較小的分片中,將該分片號和新加入的數(shù)據(jù)關(guān)聯(lián)記錄到字典表中;
3、而當(dāng)前數(shù)據(jù)量較小的分片可以通過計(jì)算每個(gè)分片的記錄數(shù)進(jìn)行排序,取最小的分片,這個(gè)就是動(dòng)態(tài)的。計(jì)算分片的記錄數(shù)也是有技巧的

2017年5月9日 21:50