openGauss 分割槽

奔跑的数据库發表於2024-03-30

分割槽

可獲得性

本特性自openGauss 1.1.0版本開始引入。

特性簡介

資料分割槽是在一個節點內部對資料按照使用者指定的策略做進一步的水平分表,將表按照指定範圍劃分為多個資料互不重疊的部分。

客戶價值

對於大多數使用者使用場景,分割槽表和普通表相比具有以下優點:

  • 改善查詢效能:對分割槽物件的查詢可以僅搜尋自己關心的分割槽,提高檢索效率。
  • 增強可用性:如果分割槽表的某個分割槽出現故障,表在其他分割槽的資料仍然可用。
  • 均衡I/O:可以把不同的分割槽對映到不同的磁碟以平衡I/O,改善整個系統效能。

特性描述

目前openGauss資料庫支援範圍分割槽表、列表分割槽表、雜湊分割槽表、間隔分割槽表、二級分割槽表:

  • 範圍分割槽表:將資料基於範圍對映到每一個分割槽,這個範圍是由建立分割槽表時指定的分割槽鍵決定的。這種分割槽方式是最為常用的。

    範圍分割槽功能,即根據表的一列或者多列,將要插入表的記錄分為若干個範圍(這些範圍在不同的分割槽裡沒有重疊),然後為每個範圍建立一個分割槽,用來儲存相應的資料。

  • 列表分割槽表:將資料基於各個分割槽內包含的鍵值對映到每一個分割槽,分割槽包含的鍵值在建立分割槽時指定。

    列表分割槽功能,即根據表的一列或多列,將要插入表的記錄中出現的鍵值分為若干個列表(這些列表在不同的分割槽裡沒有重疊),然後為每個列表建立一個分割槽,用來儲存相應的資料。

  • 雜湊分割槽表:將資料透過雜湊對映到每一個分割槽,每一個分割槽中儲存了具有相同雜湊值的記錄。

    雜湊分割槽功能,即根據表的一列,透過內部雜湊演算法將要插入表的記錄劃分到對應的分割槽中。

  • 間隔分割槽表:間隔分割槽是一種特殊的範圍分割槽,相比範圍分割槽,新增間隔值定義,當插入記錄找不到匹配的分割槽時,可以根據間隔值自動建立分割槽。

  • 二級分割槽表:二級分割槽表是在一級分割槽的基礎上再進行分割槽,分割槽方案是由兩個一級分割槽的分割槽方案組合而來的,目前二級分割槽表支援範圍分割槽,列表分割槽,雜湊分割槽交叉組合的9種分割槽策略。

使用者在CREATE TABLE時增加PARTITION引數,即表示針對此表應用資料分割槽功能。使用者可以在實際使用中根據需要調整建表時的分割槽鍵,使每次查詢結果儘可能儲存在相同或者最少的分割槽內(稱為“分割槽剪枝”),透過獲取連續I/O大幅度提升查詢效能。

實際業務中,時間經常被作為查詢物件的過濾條件。因此,使用者可考慮選擇時間列為分割槽鍵,鍵值範圍可根據總資料量、一次查詢資料量調整。

特性增強

支援範圍分割槽表的合併功能。

特性約束

無。

依賴關係

無。

相關文章