1. 程式人生 > >分庫分表技術演進&最佳實踐

分庫分表技術演進&最佳實踐

移動網際網路時代,海量的使用者每天產生海量的數量,比如:

  • 使用者表

  • 訂單表

  • 交易流水錶

 

以支付寶使用者為例,8億;微信使用者更是10億。訂單表更誇張,比如美團外賣,每天都是幾千萬的訂單。淘寶的歷史訂單總量應該百億,甚至千億級別,這些海量資料遠不是一張表能Hold住的。事實上MySQL單表可以儲存10億級資料,只是這時候效能比較差,業界公認MySQL單表容量在1KW以下是最佳狀態,因為這時它的BTREE索引樹高在3~5之間。

 

既然一張表無法搞定,那麼就想辦法將資料放到多個地方,目前比較普遍的方案有3個:

  1. 分割槽;

  2. 分庫分表;

  3. NoSQL/NewSQL;

 

說明:只分庫,或者只分表,或者分庫分表融合方案都統一認為是分庫分表方案,因為分庫,或者分表只是一種特殊的分庫分表而已。NoSQL比較具有代表性的是MongoDB,es。NewSQL比較具有代表性的是TiDB。

 

Why Not NoSQL/NewSQL?

 

首先,為什麼不選擇第三種方案NoSQL/NewSQL,我認為主要是RDBMS有以下幾個優點:
   - RDBMS生態完善;
   - RDBMS絕對穩定;
   - RDBMS的事務特性;

原文連結