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