自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

什么是數(shù)據(jù)庫分區(qū)?為什么要使用它?

運(yùn)維 數(shù)據(jù)庫運(yùn)維
分區(qū)意味著您將把它們組織在那個(gè)大倉庫內(nèi)的不同房間中。它們?nèi)匀粚儆谝粋€(gè)倉庫,但是現(xiàn)在您根據(jù)數(shù)據(jù)庫分區(qū)策略在邏輯級別上對它們進(jìn)行分組。

什么是數(shù)據(jù)庫分區(qū)?

分區(qū)是將表和索引分成較小的部分,甚至將其細(xì)分為較小的部分??梢詫⑺胂蟪稍谝粋€(gè)大倉庫(一張大桌子)中存放著數(shù)百萬本不同主題和年份(例如2000–2019年)的不同雜志。分區(qū)意味著您將把它們組織在那個(gè)大倉庫內(nèi)的不同房間中。它們?nèi)匀粚儆谝粋€(gè)倉庫,但是現(xiàn)在您根據(jù)數(shù)據(jù)庫分區(qū)策略在邏輯級別上對它們進(jìn)行分組。

使用數(shù)據(jù)庫分區(qū)有什么好處?

一個(gè)好的分區(qū)策略是可行的,原因有很多,例如更好的性能,更好的可管理性,更高的可用性或負(fù)載平衡。

[[382067]]

(1) 更好的性能

如果以上面的雜志倉庫為例,您正在尋找2009年10月發(fā)行的“體育畫報(bào)”,并且在發(fā)行年份對倉庫進(jìn)行了分區(qū),則只需查看房間或找到您想要的2009年分區(qū)。現(xiàn)在,想象一下,在倉庫的一個(gè)“ 2009”房間內(nèi),您放了幾個(gè)大盒子,然后按照主題或出版物將雜志放在這些盒子里(“體育畫報(bào)”,“專業(yè)攝影師”,“釣魚”英雄”,…)。這將創(chuàng)建一個(gè)子分區(qū),這將使查找所需的雜志變得更加容易,因?yàn)槟鷮⒉辉傩枰獮g覽所有《 2009年》雜志,但是您可以直接進(jìn)入2009年會議室,然后直接轉(zhuǎn)到“ “體育畫報(bào)”框。這就是性能的劃分?,F(xiàn)在,如果您將不同的雜志放在柜子里,而雜志的所有背面(標(biāo)題和月份/年份)都在外面,那將與添加索引相同。這樣一來,您就可以快速找到正確的雜志并挑選出來,而不必挑選每本雜志并閱讀整本雜志,直到找到所需的雜志為止。而且,如果您需要來自兩個(gè)或多個(gè)不同分區(qū)(房間,盒子)的數(shù)據(jù)(雜志),則可以讓兩個(gè)或多個(gè)進(jìn)程(人員)在尋找它,同時(shí)您仍可以確保他們不會兩次查看同一部分。

(2) 更好的可管理性和負(fù)載平衡

您可以將不同的邏輯分區(qū)存儲在不同的物理磁盤上,甚至在某些情況下甚至可以存儲在服務(wù)器上。這樣,在一個(gè)分區(qū)/磁盤/服務(wù)器上工作并不一定意味著其他分區(qū)必須脫機(jī)。維護(hù)也是如此,如果僅保留最近10年的數(shù)據(jù),并且按年范圍對表進(jìn)行分區(qū),則可以輕松地刪除(或備份和刪除)最早的分區(qū)?;氐絺}庫比較,如果您每年將倉庫劃分為多個(gè)房間,并且在2011年房間中完成工作,那么其他所有房間仍然可以使用。如果要?jiǎng)h除2000年的所有雜志,則只需從一個(gè)房間中取出所有東西,而不必每年瀏覽每本雜志。

(3) 更高的可用性

由于故障或其他原因造成的停機(jī)時(shí)間不一定會對其他分區(qū)產(chǎn)生影響。備份和恢復(fù)也是如此,您可以對每個(gè)分區(qū)進(jìn)行獨(dú)立于其他分區(qū)的操作,從而減少了停機(jī)時(shí)間。

什么時(shí)候應(yīng)該對我的表進(jìn)行分區(qū)?

分區(qū)策略中需要考慮以下幾件事:

  • 大表始終是一個(gè)很好的分區(qū)候選對象,超過2Gb的一切都是一個(gè)開始。
  • 如果您的表中包含歷史數(shù)據(jù),并且數(shù)據(jù)將按時(shí)間順序添加。例如,如果您按月或天為基礎(chǔ)按批次加載數(shù)據(jù),則更是如此。在這種類型的分區(qū)中,一個(gè)分區(qū)只能保留最新的分區(qū)可更新,而其他分區(qū)(舊)則是只讀的。
  • 如果您需要在不同類型的存儲(在某些情況下甚至是服務(wù)器)之間分配表。例如,大多數(shù)查詢都在最近三年的分區(qū)上運(yùn)行,但是您需要在表中保留10年的數(shù)據(jù)。最古老的7年很少被查詢。這樣,您可以將最新的三個(gè)分區(qū)放置在高性能SSD驅(qū)動器上,而將最舊的7個(gè)分區(qū)放置在較舊和較便宜但速度較慢的HD驅(qū)動器上。

為什么不使用索引而是分區(qū)?

好吧,索引很好。他們甚至很棒!在您的數(shù)據(jù)庫性能工具箱中,它們絕對是必不可少的工具。但是索引非常擅長檢索一小部分?jǐn)?shù)據(jù),尤其是散布在整個(gè)表中的數(shù)據(jù)。如果索引可以為您提供超過20%的數(shù)據(jù),則可以認(rèn)為它們最終表現(xiàn)最佳,而真正的轉(zhuǎn)折點(diǎn)大概是數(shù)據(jù)的1%-5%。但是,當(dāng)然,這很大程度上取決于許多不同的因素,例如服務(wù)器,設(shè)置,數(shù)據(jù),天氣(不,不是天氣!),……最重要的是:不要考慮分區(qū)或索引。

在一個(gè)好的分區(qū)策略中,仍然有很多空間和機(jī)會可以很好地使用索引。例如,我上面的雜志倉庫示例,在倉庫內(nèi)部每年進(jìn)行分區(qū),在房間內(nèi)部按出版物進(jìn)行分區(qū)。通過使標(biāo)題/月份在櫥柜而不是框內(nèi)(這將創(chuàng)建索引)更加可見,從而留下了更多提高性能的機(jī)會。

我可以基于什么數(shù)據(jù)庫分區(qū)策略?

您在分區(qū)表中輸入的每一行都應(yīng)明確屬于一個(gè)特定分區(qū)。分區(qū)鍵定義行將存儲在哪個(gè)分區(qū)中。這個(gè)分區(qū)鍵可以是一個(gè)字段,也可以包含多個(gè)字段的組合,只要它是模棱兩可的,那么就很獨(dú)特。回到雜志的例子,您可以使用“出版年份”作為分區(qū)鍵,但是您不能將“包含汽車品牌的圖片”用作每個(gè)品牌的分區(qū)鍵和分區(qū),因?yàn)檫@意味著最新的“ Top Gear Magazine”需要同時(shí)位于“ Ferrari”和“ Aston Martin”分區(qū)中,并且還有更多。

有哪些不同類型的分區(qū)?

  • 范圍分區(qū)
  • 列表分區(qū)
  • 哈希分區(qū)
  • 子分區(qū)

(1) 范圍分區(qū)

按值范圍進(jìn)行分區(qū)。這意味著,如果分區(qū)鍵的值在該分區(qū)范圍內(nèi),則對表進(jìn)行分區(qū),以使行屬于特定分區(qū)。例如,雜志:我們每年將倉庫分成多個(gè)房間。這意味著我們有范圍分區(qū),其中每個(gè)分區(qū)的范圍從01–01-YYYY到31–12-YYYY。因此,如果我有一本雜志的發(fā)布日期為2015年5月,則它將進(jìn)入2015年5月1日至2015年1月31日至2015年12月31日的范圍分區(qū)。

間隔分區(qū)是范圍分區(qū)的一種特殊類型,其中間隔分區(qū)中的范圍始終基于時(shí)間,并且在將新數(shù)據(jù)添加到表中應(yīng)屬于新間隔范圍的新數(shù)據(jù)時(shí)自動創(chuàng)建。

(2) 列表分區(qū)

通過列表對數(shù)據(jù)庫進(jìn)行分區(qū),可以通過在表和每個(gè)分區(qū)的定義中定義分區(qū)鍵來顯式控制和定義哪個(gè)值進(jìn)入哪個(gè)分區(qū):

  1. SQL> Create table magazines (Pub_Title varchar(150), Pub_Date (date)) partition by list(Pub_Title) (partition Pub_Title1 values(“Sports Illustrated”, “Mens Health”), partition Pub_Title2 values(“Vanity”, “Flair”), partition Pub_Title3 values(“Yoga Magazine”, “Zen Magazine”)); 

或者,以雜志為例,您可能已經(jīng)可以從SQL中讀取信息:我們將倉庫按每個(gè)出版物標(biāo)題劃分為多個(gè)房間,但是對于每個(gè)不同的出版物標(biāo)題,我們沒有足夠的房間,因此我們“列出”了每個(gè)房間幾個(gè)。在第一會議室中,我們放置“體育畫報(bào)”和“精神健康”;在第二會議室中,我們放置“虛榮”和“天才”;在第三會議室中,我們放置“瑜伽雜志”和“禪宗雜志”。有道理吧?

(3) 哈希分區(qū)

在哈希分區(qū)中,數(shù)據(jù)行根據(jù)分區(qū)鍵的哈希值映射到分區(qū)。如果要在沒有明確業(yè)務(wù)或數(shù)據(jù)邏輯分區(qū)的表上使用分區(qū),并且需要均勻分布的分區(qū),則此功能很有用。例如,您有一個(gè)裝滿雜志的整個(gè)倉庫,但出版物標(biāo)題和出版日期是隨機(jī)的。沒有完整的年份,依此類推。但是,您希望將它們平均分配到倉庫的十個(gè)不同房間中,以便以后需要取回一本(或多本)雜志時(shí),可以同時(shí)派出十個(gè)人去尋找它們。十個(gè)不同的房間。比散列分區(qū)派上用場。例如,您選擇出版物標(biāo)題和出版物日期的組合作為分區(qū)鍵,然后讓數(shù)據(jù)庫對該鍵進(jìn)行哈希處理,然后選擇適當(dāng)?shù)姆謪^(qū),同時(shí)將所有雜志平均分配到所有房間。

(4) 子分區(qū)

子分區(qū)(也稱為復(fù)合分區(qū))是在分區(qū)內(nèi)部創(chuàng)建分區(qū)。它是已經(jīng)分區(qū)表的每個(gè)分區(qū)的進(jìn)一步劃分。讓我們回到雜志倉庫。我們首先每年將整套雜志放在不同的房間里。這是基于范圍分區(qū)的第一個(gè)分區(qū)。接下來,在每個(gè)這些年級房間中,放入盒子,然后在每個(gè)盒子中放入所有具有相同出版物名稱的雜志。由于在那個(gè)房間里,我們只已經(jīng)有一個(gè)特定年份的出版物,所以在那個(gè)盒子里,我們只會有一個(gè)特定出版物名稱和一個(gè)特定出版年份的雜志。因此,這非常容易且快速地找到“ Yoga Magazine”,“ 2017年11月版”?;蛘撸诖a中:

  1. SQL> Create table magazines (Pub_Title(varchar(150)), Pub_Date(date) Partition by rage (Pub_Year(Pub_Date)) Subpartition by list(Pub_Title) ( partition Pub_Title1 values(“Sports Illustrated”, “Mens Health”), partition Pub_Title2 values(“Vanity”, “Flair”), partition Pub_Title3 values(“Yoga Magazine”, “Zen Magazine”) ); 

如您所見,分區(qū)是除數(shù)據(jù)庫工具箱中許多其他工具之外的有價(jià)值的工具,對于提高數(shù)據(jù)庫性能,可用性和可維護(hù)性非常有用。選擇哪種分區(qū)策略當(dāng)然取決于您的數(shù)據(jù),但也取決于您將要實(shí)現(xiàn)的特定數(shù)據(jù)庫系統(tǒng)的技術(shù)可能性。

 

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2022-04-26 16:56:20

行為數(shù)據(jù)數(shù)據(jù)

2023-09-21 09:00:00

Merge Que開發(fā)工具Mergify

2024-02-19 15:42:29

2012-08-13 09:15:54

Go開發(fā)語言編程語言

2017-07-03 13:33:42

AndroidItemDecorat

2011-03-08 12:59:38

proftpd

2014-11-21 10:50:26

JavaString

2023-02-10 08:00:00

數(shù)據(jù)庫列數(shù)據(jù)庫磁盤

2010-05-11 10:29:06

Unix awk

2014-05-19 15:52:57

Apache StraApache

2011-04-14 09:30:15

集合框架

2013-09-27 11:33:57

交換機(jī)技術(shù)Vlan技術(shù)

2014-04-25 10:05:42

OpenStack私有云公共云

2024-01-24 11:24:03

C++編程異常處理

2015-11-25 13:43:56

2014-01-03 10:59:34

2023-03-06 08:01:25

structGo語言

2021-12-24 17:01:29

Linux工具系統(tǒng)

2024-01-01 08:57:55

ODBCSqlServer數(shù)據(jù)庫

2022-11-14 07:52:14

時(shí)間序列數(shù)據(jù)庫CPU
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號