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