數據分區(qū)
云數據倉庫分布式存儲
GaussDB(DWS)采用水平分表的方式,將數據表格的元組按照一定的分布策略分散存儲到多個節(jié)點。查詢的時候可以通過查詢條件過濾不必要的數據,快速定位到數據存儲位置,從而極大提升 數據庫 性能。 在水平分表的基礎上,GaussDB(DWS)支持數據分區(qū)(Partition),即根據表的一列或者多列,將要插入表的記錄分為不重疊的若干個范圍,為每個范圍創(chuàng)建一個分區(qū),用來存儲相應的數據。 在不同場景下,基于時間分片的方式分區(qū)后帶來的收益。 當表中訪問率較高的行位于一個單獨分區(qū)或少數幾個分區(qū)時:大幅減少搜索空間,從而提升訪問性能。 當需要查詢或更新一個分區(qū)的大部分記錄時:僅需要連續(xù)掃描對應分區(qū),而非掃描整個表,因此可大幅提升性能。 當需要大量加載或者刪除的記錄位于一個單獨分區(qū)或少數幾個分區(qū)時:可直接讀取或刪除對應分區(qū),從而提升處理性能;同時由于避免大量零散的刪除操作,可減少清理碎片工作量。 數據分區(qū)帶來的好處如下: 改善可管理性 利用分區(qū),可以將表和索引劃分為一些更小、更易管理的單元。這樣,數據庫管理員在進行 數據管理 時就能采取“分而治之”的方法。 有了分區(qū),維護操作可以專門針對表的特定部分執(zhí)行。 可提升刪除操作的性能 刪除數據時可以刪除整個分區(qū),與分別刪除每行相比,這種操作非常高效和快速。 改善查詢性能 通過限制要檢查或操作的數據數量,分區(qū)可帶來許多性能優(yōu)勢,包括: --分區(qū)剪枝: 分區(qū)剪枝(也稱為分區(qū)消除)是CN在執(zhí)行時過濾掉不需要掃描的分區(qū),只對相關的分區(qū)進行掃描的技術。分區(qū)剪枝通??梢詫⒉樵冃阅芴岣呷舾蓴盗考? --智能化分區(qū)聯接: 通過使用一種稱為智能化分區(qū)聯接的技術,分區(qū)還可以改善多表聯接的性能。當將兩個表聯接在一起,并且至少其中一個表使用聯接鍵進行分區(qū)時,可以應用智能化分區(qū)聯接。智能化分區(qū)聯接將一個大型聯接分為多個較小的聯接,這些較小的聯接包含與聯接的表“相同”的 數據集 。這里,“相同”定義為恰好包含聯接的兩端中相同的分區(qū)鍵值集,因此可以確保只有這些“相同”數據集的聯接才會有效,而不必考慮其他數據集。