AntDB 分布式資料庫如何合理選擇分片鍵

2021-09-05 11:44:09 字數 1271 閱讀 1808

本文主要**antdb 分片鍵設計規則。

分片鍵(sharding key)

分片是將一張分布式表按照指定的分片鍵(sharding key)和分片模式(sharding mode)水平拆分成多個資料片,分散在多個資料儲存節點中。對於分片的表,要選取乙個分片鍵。一張分布式表只能有乙個分片鍵,分片鍵是用於劃分和定位表的列,不能修改。

分片模式(sharding mode)

分片目的

解決資料庫擴充套件性問題,突破單節點資料庫伺服器的 i/o 能力限制。

分片策略

1000萬以內的表,不建議分片.通過合適的索引,可以更好地解決效能問題。

分片鍵不能修改。

分片鍵選擇時,盡量保證資料能夠均勻分布。

分片鍵選擇時,盡量保證事務控制在分片範圍內(本節點),避免出現跨分片(跨節點)。

繼承表的分片鍵,子表保持和父表一致。

總體上來說,分片鍵盤的選擇是取決於最頻繁的查詢 sql 的條件。找出每個表最頻繁的 sql,分析其查詢條件,以及相互的關係,就能比較準確的選擇每個表的分片策略。

只要是進行切分,跨節點join的問題是不可避免的。但是良好的設計和切分可以減少此類情況的發生。

解決這一問題,要求分片欄位和join連線字段保持一致,當查詢可以下推至節點運算時,可以有效解決此類問題。

如果運算不允許下推至節點,可以將資料量較小的表修改為複製表後(資料量不超過1000萬),也能實現本節點運算的能力。

這些是一類問題,因為它們都需要基於全部資料集合進行計算。

解決這一問題,要求分片欄位和聚合字段保持一致,當聚合可以下推至節點運算時,可以有效解決此類問題。

每個人通常都有自己獨一無二的**號碼,這類重複率低的字段作為分片鍵 能夠保證集群中資料的均勻分布,是一種推薦的分片方式。

這個欄位的取值範圍是給定的乙個列表,由於總的區號的個數並不多,所有areacode相同的資料都會分布在同乙個資料節點中.由於各個地區的資料量不均勻,導致資料分布產生不均衡,這會帶來一些影響:

當按區號聚合查詢時,sql整體執行效率完全取決於 資料量較大的區號 的響應時間,產生圓桶效應。

這個欄位和 areacode 類似,也是乙個範圍區間,但是可以有效避免資料分布不均勻的問題。但當查詢的日期區間不是資料節點倍數的時候,查詢目標結果集的資料量卻產生了不均勻,也會產生圓通效應。

如乙個8節點的集群,某錶按日期分片後,只查詢連續12天的資料,此類場景,將產生計算不均勻的現象。

分布式資料庫

網路選課系統中分布式資料庫設計 何翠雙王巧雲張麗麗 摘要 關鍵字 選課 分布式 資料庫 distributed system of on line course choosing abstract key words course choosing distributed database 隨著學校...

分布式資料庫

1 背景 我們知道資料是乙個公司的命脈,隨著業務越做越大,資料量也會越來越大,計算也會越來越複雜,效能,可靠性,可擴充套件性的需求就會越來越強烈,這個時候乙個集中式的資料庫顯然已經滿足不了需求了。對於技術決策者來說有兩條路可以走,第一 按照現有的大型資料庫的解決方案,比如sql server clu...

分布式資料庫

一 分布式資料庫的出現的場景 網際網路 軟體國產化 o2o 五新 新零售 新製造,新金融 新資源 新技術 等主題接連提出來,並且在各個行業落地,給資料庫帶來了巨大機會,具體包含3個方向 1.遠超單機資料庫容量的資料儲存和訪問峰值 2.實時資料分析檢索 oltp兼顧olap 3.更高階別的容災需求。這...