Partitioning Strategies
生活随笔
收集整理的這篇文章主要介紹了
Partitioning Strategies
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
001、三種基本分區方式:Range、Hash、List。
002、Single-Level Partitioning
? ? 表以三種分區方式之一進行分區,使用一列或多列作為分區鍵。
????Range Partitioning
????范圍分區將數據按照分區鍵的范圍值分配到各個分區。這是最常見的分區方式,通常用于日期。
? ? 每個分區有一個value less than語句,這指定一個不包含上界值的分區。任何高于或等于該上界值的數據會被添加到下一個分區。所有的分區,除了第一個分區,都有一個隱含的下界值,該值就是前一個分區的values less than語句中指定的值。
? ? maxvalue值用來指定最高的分區。maxvalue代表一個虛擬無限大的分區鍵值,比其它任何分區鍵值都高(包括Null)。
????Hash Partitioning
? ? 哈希分區是Oracle將哈希算法運用到指定的分區鍵,通過哈希運算將數據分布到各個分區。哈希算法會將數據平均地分布到所有分區,這使得分區基本上尺寸相等。
? ? 哈希分區是將數據均勻分布在設備上的理想方式。哈希分區也是范圍分區的一個簡單的備用選擇,尤其是當沒有明顯的分區鍵或沒有歷史數據的時候。
????List Partitioning
? ? 列表分區可以顯式地控制一個分區有多少行,這通過為每個分區的分區鍵指定一系列的離散的值來實現。列表分區的優勢在于你可以將無序和無關的數據集以普通的方式組合在一起。例如,一個以區域列為分區鍵的表,東部銷售區域可能包含紐約、弗吉尼亞,以及佛羅里達。
? ? 通過在列表分區中使用默認分區,使得你可以避免為一個按列表進行分區的表執行所有可能的值。那些沒有指定給任何分區的行不會報錯。
003、Composite Partitioning
????Composite Partitioning是將幾種基本的分區方式結合起來的分區方式。一張表以一種數據分區方式進行分區,每個分區進一步以第二種數據分布方式分成子分區。對于每個給定的分區,其子分區代表這邏輯上的數據的子集。
????Composite Partitioning支持歷史操作,例如添加新的范圍分區,同時也提供更高等級的潛在partition pruning以及通過子分區得到的更細粒度的數據存放。
????Composite Range-Range Partitioning
????Composite Range-Range Partitioning允許數據從兩個維度進行邏輯分區,例如按照order_date進行分區,再按照shipping_date進行子分區。
????Composite Range-Hash Partitioning
????Composite Range-Hash Partitioning使用范圍進行分區,每個分區再按哈希進行子分區。Composite Range-Hash Partitioning提供了改良的范圍分區的可管理性以及哈心分區的數據分布、條帶化和并行的優勢。
????Composite Range-List Partitioning
????Composite Range-List Partitioning使用范圍進行分區,分區再按照list進行子分區。Composite Range-List Partitioning提供了反問分區的可管理性和list子分區的明確的可控性。
????Composite List-Range Partitioning
????Composite List-Range Partitioning是對于一個給定的list分區可以通過邏輯范圍來進行子分區。例如,按照country_id進行list分區,再按照order_date進行范圍子分區。
????Composite List-Hash Partitioning
????Composite List-Hash Partitioning將list分區再按hash進行子分區。例如,為了使用partition-wise joins.
????Composite List-List Partitioning
????Composite List-List Partitioning根據兩個維度進行list分區。例如,按照country_id進行list分區,再按照sales_channel進行list子分區。
002、Single-Level Partitioning
? ? 表以三種分區方式之一進行分區,使用一列或多列作為分區鍵。
????Range Partitioning
????范圍分區將數據按照分區鍵的范圍值分配到各個分區。這是最常見的分區方式,通常用于日期。
? ? 每個分區有一個value less than語句,這指定一個不包含上界值的分區。任何高于或等于該上界值的數據會被添加到下一個分區。所有的分區,除了第一個分區,都有一個隱含的下界值,該值就是前一個分區的values less than語句中指定的值。
? ? maxvalue值用來指定最高的分區。maxvalue代表一個虛擬無限大的分區鍵值,比其它任何分區鍵值都高(包括Null)。
????Hash Partitioning
? ? 哈希分區是Oracle將哈希算法運用到指定的分區鍵,通過哈希運算將數據分布到各個分區。哈希算法會將數據平均地分布到所有分區,這使得分區基本上尺寸相等。
? ? 哈希分區是將數據均勻分布在設備上的理想方式。哈希分區也是范圍分區的一個簡單的備用選擇,尤其是當沒有明顯的分區鍵或沒有歷史數據的時候。
????List Partitioning
? ? 列表分區可以顯式地控制一個分區有多少行,這通過為每個分區的分區鍵指定一系列的離散的值來實現。列表分區的優勢在于你可以將無序和無關的數據集以普通的方式組合在一起。例如,一個以區域列為分區鍵的表,東部銷售區域可能包含紐約、弗吉尼亞,以及佛羅里達。
? ? 通過在列表分區中使用默認分區,使得你可以避免為一個按列表進行分區的表執行所有可能的值。那些沒有指定給任何分區的行不會報錯。
003、Composite Partitioning
????Composite Partitioning是將幾種基本的分區方式結合起來的分區方式。一張表以一種數據分區方式進行分區,每個分區進一步以第二種數據分布方式分成子分區。對于每個給定的分區,其子分區代表這邏輯上的數據的子集。
????Composite Partitioning支持歷史操作,例如添加新的范圍分區,同時也提供更高等級的潛在partition pruning以及通過子分區得到的更細粒度的數據存放。
????Composite Range-Range Partitioning
????Composite Range-Range Partitioning允許數據從兩個維度進行邏輯分區,例如按照order_date進行分區,再按照shipping_date進行子分區。
????Composite Range-Hash Partitioning
????Composite Range-Hash Partitioning使用范圍進行分區,每個分區再按哈希進行子分區。Composite Range-Hash Partitioning提供了改良的范圍分區的可管理性以及哈心分區的數據分布、條帶化和并行的優勢。
????Composite Range-List Partitioning
????Composite Range-List Partitioning使用范圍進行分區,分區再按照list進行子分區。Composite Range-List Partitioning提供了反問分區的可管理性和list子分區的明確的可控性。
????Composite List-Range Partitioning
????Composite List-Range Partitioning是對于一個給定的list分區可以通過邏輯范圍來進行子分區。例如,按照country_id進行list分區,再按照order_date進行范圍子分區。
????Composite List-Hash Partitioning
????Composite List-Hash Partitioning將list分區再按hash進行子分區。例如,為了使用partition-wise joins.
????Composite List-List Partitioning
????Composite List-List Partitioning根據兩個維度進行list分區。例如,按照country_id進行list分區,再按照sales_channel進行list子分區。
總結
以上是生活随笔為你收集整理的Partitioning Strategies的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux centos7 root密码
- 下一篇: 总结之前做项目中要注意的一些书写规范