1. 程式人生 > >一致性雜湊--分庫分表

一致性雜湊--分庫分表

首先了解一下什麼是一致性雜湊,這裡推薦一篇部落格: 
http://blog.csdn.net/cywosp/article/details/23397179/

分庫分表是目前解決單點資料庫一種比較流行的做法,也相對成熟,但都有一個共同的問題,就是隨著業務的增長,之前的分庫分表容量不夠了,需要擴容了,這時,使用一致性雜湊或者分段雜湊(靜態雜湊+配置規則)可以儘量的減少資料的遷移。這裡只談一談一致性雜湊的做法。
什麼時候我們需要利用一致性雜湊水平拆分資料庫單表呢? 
1、當我們擁有一個數據量非常大的單表,比如上億條資料。 
2、不僅資料量巨大,這個單表的訪問讀寫也非常頻繁,單機已經無法抗住 I/O 操作。 
3、此表無事務性操作,如果涉及分散式事務是相當複雜的事情,在拆分此類表需要異常小心。 
4、查詢條件單一,對此表的查詢更新條件常用的僅有1-2個欄位,比如使用者表中的使用者id或使用者名稱。 
最後,這樣的拆分也是會帶來負面性的,當水平拆分了一個大表,不得不去修改應用程式或者開發db代理層中介軟體,這樣會加大開發週期、難度和系統複雜性。

大眾點評例項:http://www.jianshu.com/p/e598a1bf0980