分庫分表如何做到永久不遷移資料和避免熱點?

2021-10-21 18:47:19 字數 565 閱讀 4303

分庫分表如何做到永久不遷移資料和避免熱點?

hash+range方法結合。

hash取模方法:資料分布均勻,不會有熱點問題、擴容複雜

range範圍方案:擴容方便、存在熱點問題

解決方案:hash+range方法結合

group組的概念,group01組存如id在0~4000萬資料

group01有三個db,db1 有四張表,db2有三張表,db3有三張表

id%10==(0~3落入db1;4~6落入db2;7~9落入db3)具體落入哪張表,用range範圍決定。

擴容時,增加乙個group02即可,group01的資料不用變。

上述表的對應關係可以配置到分布式配置中心zookeeper中。

知識點:分布式id

group表:

group_id group_name start_id end_id

db表:

db_id db_name group_id hash_value

group和db的關係

table_id table_name db_id start_id end_id

面試官 如何做到不停機分庫分表遷移?

類似訂單表,使用者表這種未來規模上億甚至上十億百億的海量資料表,在專案初期為了快速上線,一般只是單錶設計,不需要考慮分庫分表。隨著業務的發展,單錶容量超過千萬甚至達到億級別以上,這時候就需要考慮分庫分表這個問題了,而不停機分庫分表遷移,這應該是分庫分表最基本的需求,畢竟網際網路專案不可能掛個廣告牌 ...

mysql 分表平滑擴充套件 水平分庫如何做到平滑擴充套件

這個對於我們常用的分庫分表方案來說,有很大的優勢,分庫分表的擴容是一件頭疼的問題,如果採用對db層做一致性hash,或是中間價的支援,它的成本過於高昂了,如果不如此,只能停機維護來處理,對高可用性會產生影響。那是否有方案,既可以快速擴充套件,又不降低可用性?這一篇,我們聊聊分庫分表的擴充套件方案,供...

如何把單庫資料遷移到分庫分表?

面試官 如何把單個資料庫的資料遷移到分庫分表裡面?面試官心理剖析 主要是看你在生產環境弄過?沒弄過的話看你有沒有思考過這個問題?因為在做分庫分表的時候肯定會遇到這個問題。回答 假設你的分庫分表中介軟體已經選好了,分庫分表的資料庫都已經建好了。分庫分表的功能也都已經測試通過了,可以上線了。資料遷移的系...