日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
數(shù)據(jù)庫(kù)分區(qū)擴(kuò)容,實(shí)現(xiàn)更高效的數(shù)據(jù)存儲(chǔ) (數(shù)據(jù)庫(kù)分區(qū)擴(kuò)容)

隨著互聯(lián)網(wǎng)和大數(shù)據(jù)時(shí)代的到來(lái),企業(yè)數(shù)據(jù)量越來(lái)越大,對(duì)數(shù)據(jù)庫(kù)的存儲(chǔ)和管理提出了更高的要求。傳統(tǒng)單機(jī)數(shù)據(jù)庫(kù)存儲(chǔ)已經(jīng)無(wú)法滿足當(dāng)前的需求,一種新的數(shù)據(jù)庫(kù)存儲(chǔ)方案——分區(qū)擴(kuò)容應(yīng)運(yùn)而生。它利用多個(gè)小型數(shù)據(jù)庫(kù)服務(wù)橫向擴(kuò)展來(lái)提高數(shù)據(jù)存儲(chǔ)的效率和可擴(kuò)展性。本文將從定義、實(shí)現(xiàn)原理、使用場(chǎng)景及優(yōu)劣勢(shì)等方面來(lái)詳細(xì)介紹數(shù)據(jù)庫(kù)分區(qū)擴(kuò)容的相關(guān)知識(shí)。

江蘇網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

1.分區(qū)擴(kuò)容的定義與原理

分區(qū)擴(kuò)容技術(shù)是將一個(gè)大型數(shù)據(jù)庫(kù)拆分成多個(gè)小分區(qū)分別存儲(chǔ),并由多個(gè)數(shù)據(jù)庫(kù)服務(wù)器來(lái)管理這些分區(qū)。其中,每個(gè)分區(qū)可以簡(jiǎn)單理解為一個(gè)獨(dú)立的數(shù)據(jù)庫(kù)實(shí)例,擁有自己的數(shù)據(jù)表、索引和存儲(chǔ)引擎等。必要時(shí),還可以根據(jù)數(shù)據(jù)特性和操作頻率等因素動(dòng)態(tài)地添加或刪除分區(qū)。

分區(qū)擴(kuò)容的實(shí)現(xiàn)原理為將大型數(shù)據(jù)庫(kù)按照某種規(guī)則(如按日期、按地域等)分割成多個(gè)小型數(shù)據(jù)庫(kù),同時(shí)將這些小型數(shù)據(jù)庫(kù)部署在多個(gè)獨(dú)立的服務(wù)器上。每個(gè)小型數(shù)據(jù)庫(kù)就是一個(gè)獨(dú)立的分區(qū),負(fù)責(zé)管理自己的數(shù)據(jù)和索引,同時(shí)通過(guò)分布式的方式將這些小型數(shù)據(jù)庫(kù)整合成一個(gè)整體。

2.使用場(chǎng)景

2.1 網(wǎng)絡(luò)流量大、用戶多的應(yīng)用場(chǎng)景

在互聯(lián)網(wǎng)應(yīng)用中,容易出現(xiàn)大量用戶同時(shí)對(duì)同一數(shù)據(jù)表進(jìn)行操作,由于單臺(tái)服務(wù)器的處理能力有限,容易造成系統(tǒng)性能瓶頸。采用數(shù)據(jù)庫(kù)分區(qū)擴(kuò)容技術(shù),將表數(shù)據(jù)分布在多個(gè)數(shù)據(jù)庫(kù)之間,可以更大化地提高系統(tǒng)的并發(fā)處理能力,有效緩解服務(wù)器壓力。

2.2 數(shù)據(jù)增長(zhǎng)快、存儲(chǔ)需求高的應(yīng)用場(chǎng)景

隨著數(shù)據(jù)的不斷增長(zhǎng)和業(yè)務(wù)的不斷發(fā)展,單臺(tái)服務(wù)器存儲(chǔ)能力逐漸達(dá)到瓶頸。采用分區(qū)擴(kuò)容技術(shù),可以將大型數(shù)據(jù)庫(kù)分割成多個(gè)小型數(shù)據(jù)庫(kù),分別存儲(chǔ),有效提高總的數(shù)據(jù)存儲(chǔ)能力,同時(shí)保證數(shù)據(jù)的可用性和可靠性。

2.3 海量數(shù)據(jù)查詢分析領(lǐng)域

在大數(shù)據(jù)分析領(lǐng)域,數(shù)據(jù)表通常非常大,查詢操作也極其復(fù)雜,單臺(tái)服務(wù)器的性能無(wú)法滿足要求。采用分區(qū)擴(kuò)容技術(shù),可以通過(guò)分布式架構(gòu)的方式,將龐大的數(shù)據(jù)表拆分成多個(gè)小型的數(shù)據(jù)表,利用多臺(tái)服務(wù)器并行查詢來(lái)提高系統(tǒng)的查詢效率。

3. 分區(qū)擴(kuò)容的優(yōu)劣勢(shì)分析

3.1 優(yōu)勢(shì)

(1)性能優(yōu)化:通過(guò)分區(qū)存儲(chǔ)、分區(qū)索引,提高數(shù)據(jù)查詢和更新的速度。

(2)可擴(kuò)展性:由于分區(qū)數(shù)據(jù)相互獨(dú)立,可以方便地分布式擴(kuò)展,增加服務(wù)器數(shù)量,提高系統(tǒng)的處理能力。

(3)減輕服務(wù)器壓力:分區(qū)擴(kuò)容使得多個(gè)服務(wù)器同時(shí)處理數(shù)據(jù),分擔(dān)了單臺(tái)服務(wù)器的負(fù)荷,提高了系統(tǒng)的穩(wěn)定性。

3.2 劣勢(shì)

(1)成本高:采用分區(qū)擴(kuò)容技術(shù)需要多個(gè)服務(wù)器來(lái)支持,需要更多的硬件設(shè)備和人力資源。

(2)數(shù)據(jù)分布不均:分區(qū)擴(kuò)容需要分析數(shù)據(jù)特點(diǎn),根據(jù)特點(diǎn)盡可能平均地分配數(shù)據(jù),否則可能會(huì)導(dǎo)致某些服務(wù)器過(guò)于繁忙,而導(dǎo)致系統(tǒng)性能下降。

4.

綜上所述,數(shù)據(jù)庫(kù)分區(qū)擴(kuò)容技術(shù)是一種有效的大型數(shù)據(jù)庫(kù)存儲(chǔ)方案,它可以實(shí)現(xiàn)數(shù)據(jù)的分布式存儲(chǔ)、并行查詢等功能,不僅提高了數(shù)據(jù)庫(kù)處理的速度,還可以方便地進(jìn)行系統(tǒng)擴(kuò)展和維護(hù)。隨著互聯(lián)網(wǎng)和大數(shù)據(jù)技術(shù)的發(fā)展,分區(qū)擴(kuò)容技術(shù)在實(shí)際應(yīng)用中也得到了廣泛的應(yīng)用,為企業(yè)帶來(lái)了更高效、更可靠的數(shù)據(jù)處理服務(wù)。

相關(guān)問(wèn)題拓展閱讀:

  • Oracle數(shù)據(jù)庫(kù)分區(qū)表操作方法
  • 開(kāi)源數(shù)據(jù)庫(kù)Sharding技術(shù)[1]

Oracle數(shù)據(jù)庫(kù)分區(qū)表操作方法

在大型的企業(yè)應(yīng)用或企業(yè)級(jí)的數(shù)據(jù)庫(kù)應(yīng)用中 要處理的數(shù)據(jù)量通??梢赃_(dá)到幾十到幾百GB 有的甚至可以到TB級(jí) 雖然存儲(chǔ)介質(zhì)和數(shù)據(jù)處理技術(shù)的發(fā)展也很快 但是仍然不能滿足用戶的需求 為了使用戶的大量的數(shù)據(jù)在讀寫操作和查詢中速度更快 Oracle提供了對(duì)表和索引進(jìn)行分區(qū)的技術(shù) 以改善大型應(yīng)用系統(tǒng)的性能

  使用分區(qū)的優(yōu)點(diǎn)

  ·增強(qiáng)可用性 如果表的某個(gè)分區(qū)出現(xiàn)故障 表在其他分區(qū)的數(shù)據(jù)仍然可用

  ·維護(hù)方便 如果表的某個(gè)分區(qū)出現(xiàn)故障 需要修復(fù)數(shù)據(jù) 只修復(fù)該分區(qū)即可

  ·均衡I/O 可以把不同的分區(qū)映射到磁盤以平衡I/O 改善整個(gè)系統(tǒng)性能

  ·改善查詢性能 對(duì)分區(qū)對(duì)象的查詢可以僅搜索自己關(guān)心的分區(qū) 提高檢索速度

  Oracle數(shù)據(jù)庫(kù)提供對(duì)表或索引的分區(qū)方法有三種

  ·范圍分區(qū)

  ·Hash分區(qū)(散列分區(qū))

  ·復(fù)合分區(qū)

  下面將以實(shí)例的方式分別對(duì)這三種分區(qū)方法來(lái)說(shuō)明分區(qū)表的使用 為了測(cè)試方便 我們先建三個(gè)表空間

  以下為引用的內(nèi)容

  create tablespace dinya_space

  datafile /test/demo/oracle/demodata/dinya dnf size M

  create tablespace dinya_space

  datafile /test/demo/oracle/demodata/dinya dnf size M

  create tablespace dinya_space

  datafile /test/demo/oracle/demodata/dinya dnf size M

   分區(qū)表的創(chuàng)建

   范圍分區(qū)

  范圍分區(qū)就是對(duì)數(shù)據(jù)表中的某個(gè)值的范圍進(jìn)行分區(qū) 根據(jù)某個(gè)值的范圍 決定將該數(shù)據(jù)存儲(chǔ)在哪個(gè)分區(qū)上 如根據(jù)序號(hào)分區(qū) 根據(jù)業(yè)務(wù)記錄的創(chuàng)建日期進(jìn)行分區(qū)等

  需求描述 有一個(gè)物料交易表 表名 material_transactions 該表將來(lái)可能有千萬(wàn)級(jí)的數(shù)據(jù)記錄數(shù) 要求在建該表的時(shí)候使用分區(qū)表 這時(shí)候我們可以使用序號(hào)分區(qū)三個(gè)區(qū) 每個(gè)區(qū)中預(yù)計(jì)存儲(chǔ)三千萬(wàn)的數(shù)據(jù) 也可以使用日期分區(qū) 如每五年的數(shù)據(jù)存儲(chǔ)在一個(gè)分區(qū)上

  根據(jù)交易記錄的序號(hào)分區(qū)建表 以下為引用的內(nèi)容

  SQL> create table dinya_test

   (

   transaction_id number primary key

   item_id number( ) not null

   item_description varchar ( )

   transaction_date date not null

   )

   partition by range (transaction_id)

   (

   partition part_ values less than( ) tablespace dinya_space

   partition part_ values less than( ) tablespace dinya_space

   partition part_ values less than(maxvalue) tablespace dinya_space

   );

  Table created

  建表成功 根據(jù)交易的序號(hào) 交易ID在三千萬(wàn)以下的記錄將存儲(chǔ)在之一個(gè)表空間dinya_space 中 分區(qū)名為:par_ 在三千萬(wàn)到六千萬(wàn)之間的記錄存儲(chǔ)在第二個(gè)表空間

  dinya_space 中 分區(qū)名為 par_ 而交易ID在六千萬(wàn)以上的記錄存儲(chǔ)在第三個(gè)表空間dinya_space 中 分區(qū)名為par_

  根據(jù)交易日期分區(qū)建表

  以下為引用的內(nèi)容

  SQL> create table dinya_test

   (

   transaction_id number primary key

   item_id number( ) not null

   item_description varchar ( )

   transaction_date date not null

   )

   partition by range (transaction_date)

   (

   partition part_ values less than(to_date( yyyy mm dd ))

  tablespace dinya_space

   partition part_ values less than(to_date( yyyy mm dd ))

  tablespace dinya_space

   partition part_ values less than(maxvalue) tablespace dinya_space

   );

  Table created

  這樣我們就分別建了以交易序號(hào)和交易日期來(lái)分區(qū)的分區(qū)表 每次插入數(shù)據(jù)的時(shí)候 系統(tǒng)將根據(jù)指定的字段的值來(lái)自動(dòng)將記錄存儲(chǔ)到制定的分區(qū)(表空間)中

  當(dāng)然 我們還可以根據(jù)需求 使用兩個(gè)字段的范圍分布來(lái)分區(qū) 如partition

  by range ( transaction_id transaction_date)

  分區(qū)條件中的值也做相應(yīng)的改變 請(qǐng)讀者自行測(cè)試

   Hash分區(qū)(散列分區(qū))

  散列分區(qū)為通過(guò)指定分區(qū)編號(hào)來(lái)均勻分布數(shù)據(jù)的一種分區(qū)類型 因?yàn)橥ㄟ^(guò)在I/O設(shè)備上進(jìn)行散列分區(qū) 使得這些分區(qū)大小一致 如將物料交易表的數(shù)據(jù)根據(jù)交易ID散列地存放在指定的三個(gè)表空間中

  以下為引用的內(nèi)容

  SQL> create table dinya_test

   (

   transaction_id number primary key

   item_id number( ) not null

   item_description varchar ( )

   transaction_date date

   )

   partition by hash(transaction_id)

   (

   partition part_ tablespace dinya_space

   partition part_ tablespace dinya_space

   partition part_ tablespace dinya_space

   );

  Table created

  建表成功 此時(shí)插入數(shù)據(jù) 系統(tǒng)將按transaction_id將記錄散列地插入三個(gè)分區(qū)中 這里也就是三個(gè)不同的表空間中

   復(fù)合分區(qū)

  有時(shí)候我們需要根據(jù)范圍分區(qū)后 每個(gè)分區(qū)內(nèi)的數(shù)據(jù)再散列地分布在幾個(gè)表空間中 這樣我們就要使用復(fù)合分區(qū) 復(fù)合分區(qū)是先使用范圍分區(qū) 然后在每個(gè)分區(qū)內(nèi)再使用散列分區(qū)的一種分區(qū)方法 如將物料交易的記錄按時(shí)間分區(qū) 然后每個(gè)分區(qū)中的數(shù)據(jù)分三個(gè)子分區(qū) 將數(shù)據(jù)散列地存儲(chǔ)在三個(gè)指定的表空間中

  以下為引用的內(nèi)容

  SQL> create table dinya_test

   (

   transaction_id number primary key

   item_id number( ) not null

   item_description varchar ( )

   transaction_date date

   )

   partition by range(transaction_date)subpartition by hash(transaction_id)

   subpartitions store in (dinya_space dinya_space dinya_space )

   (

   partition part_ values less than(to_date( yyyy mm dd ))

   partition part_ values less than(to_date( yyyy mm dd ))

   partition part_ values less than(maxvalue)

   );

  Table created

  該例中 先是根據(jù)交易日期進(jìn)行范圍分區(qū) 然后根據(jù)交易的ID將記錄散列地存儲(chǔ)在三個(gè)表空間中

   分區(qū)表操作

  以上了解了三種分區(qū)表的建表方法 下面將使用實(shí)際的數(shù)據(jù)并針對(duì)按日期的范圍分區(qū)來(lái)測(cè)試分區(qū)表的數(shù)據(jù)記錄的操作

   插入記錄

  以下為引用的內(nèi)容

  SQL> insert into dinya_test values( BOOKS sysdate);

   row created

  SQL> insert into dinya_test values( BOOKS sysdate+ );

   row created

  SQL> insert into dinya_test values( BOOKS to_date( yyyy mm dd ));

   row created

  SQL> insert into dinya_test values( BOOKS to_date( yyyy mm dd ));

   row created

  SQL> insert into dinya_test values( BOOKS to_date( yyyy mm dd ));

   row created

  SQL> insert into dinya_test values( BOOKS to_date( yyyy mm dd ));

   row created

  SQL> mit;

  Commit plete

  SQL>

  按上面的建表結(jié)果 年前的數(shù)據(jù)將存儲(chǔ)在之一個(gè)分區(qū)part_ 上 而 年到 年的交易數(shù)據(jù)將存儲(chǔ)在第二個(gè)分區(qū)part_ 上 年以后的記錄存儲(chǔ)在第三個(gè)分區(qū)part_ 上

   查詢分區(qū)表記錄 以下為引用的內(nèi)容

  SQL> select * from dinya_test partition(part_ );

  TRANSACTION_ID ITEM_ID ITEM_DESCRIPTION TRANSACTION_DATE

  

   BOOKS : :

   BOOKS : :

  SQL>

  SQL> select * from dinya_test partition(part_ );

  TRANSACTION_ID ITEM_ID ITEM_DESCRIPTION TRANSACTION_DATE

  

   BOOKS

   BOOKS

  SQL>

  SQL> select * from dinya_test partition(part_ );

  TRANSACTION_ID ITEM_ID ITEM_DESCRIPTION TRANSACTION_DATE

  

   BOOKS

   BOOKS

  SQL>

  從查詢的結(jié)果可以看出 插入的數(shù)據(jù)已經(jīng)根據(jù)交易時(shí)間范圍存儲(chǔ)在不同的分區(qū)中 這里是指定了分區(qū)的查詢 當(dāng)然也可以不指定分區(qū) 直接執(zhí)行select * from dinya_test查詢?nèi)坑涗?/p>

  在也檢索的數(shù)據(jù)量很大的時(shí)候 指定分區(qū)會(huì)大大提高檢索速度

   更新分區(qū)表的記錄

  以下為引用的內(nèi)容

  SQL> update dinya_test partition(part_ ) t set em_description= DESK where

  t transaction_id= ;

   row updated

  SQL> mit;

  Commit plete

  SQL>

  這里將之一個(gè)分區(qū)中的交易ID= 的記錄中的item_description字段更新為 DESK 可以看到已經(jīng)成功更新了一條記錄 但是當(dāng)更新的時(shí)候指定了分區(qū) 而根據(jù)查詢的記錄不在該分區(qū)中時(shí) 將不會(huì)更新數(shù)據(jù) 請(qǐng)看下面的例子 以下為引用的內(nèi)容

  SQL> update dinya_test partition(part_ ) t set em_description= DESK where

  t transaction_id= ;

   rows updated

  SQL> mit;

  Commit plete

  SQL>

  指定了在之一個(gè)分區(qū)中更新記錄 但是條件中限制交易ID為 而查詢?nèi)?交易ID為 的記錄在第三個(gè)分區(qū)中 這樣該條語(yǔ)句將不會(huì)更新記錄

   刪除分區(qū)表記錄

  以下為引用的內(nèi)容

  SQL> delete from dinya_test partition(part_ ) t where t transaction_id= ;

   row deleted

  SQL> mit;

  Commit plete

  SQL>

  上面例子刪除了第二個(gè)分區(qū)part_ 中的交易記錄ID為 的一條記錄 和更新數(shù)據(jù)相同 如果指定了分區(qū) 而條件中的數(shù)據(jù)又不在該分區(qū)中時(shí) 將不會(huì)刪除任何數(shù)據(jù)

   分區(qū)表索引的使用

  分區(qū)表和一般表一樣可以建立索引 分區(qū)表可以創(chuàng)建局部索引和全局索引 當(dāng)分區(qū)中出現(xiàn)許多事務(wù)并且要保證所有分區(qū)中的數(shù)據(jù)記錄的唯一性時(shí)采用全局索引

   局部索引分區(qū)的建立

  以下為引用的內(nèi)容

  SQL> create index dinya_idx_t on dinya_test(item_id)

   local

   (

   partition idx_ tablespace dinya_space

   partition idx_ tablespace dinya_space

   partition idx_ tablespace dinya_space

   );

  Index created

  SQL>

  看查詢的執(zhí)行計(jì)劃 從下面的執(zhí)行計(jì)劃可以看出 系統(tǒng)已經(jīng)使用了索引

  以下為引用的內(nèi)容

  SQL> select * from dinya_test partition(part_ ) t where em_id= ;

  Execution Plan

  

   SELECT STATEMENT Optimizer=CHOOSE (Cost= Card= Bytes= )

   TABLE ACCESS (BY LOCAL INDEX ROWID) OF DINYA_TEST (Cost=

   Card= Bytes= )

   INDEX (RANGE SCAN) OF DINYA_IDX_T (NON UNIQUE) (Cost=

  Card= )

  Statistics

  

   recursive calls

   db block gets

   consistent gets

   physical reads

   redo size

   bytes sent via SQL*Net to client

   bytes received via SQL*Net from client

   SQL*Net roundtrips to/from client

   sorts (memory)

   sorts (disk)

   rows processed

  SQL>

   全局索引分區(qū)的建立

  全局索引建立時(shí)global 子句允許指定索引的范圍值 這個(gè)范圍值為索引字段的范圍值

  以下為引用的內(nèi)容

  SQL> create index dinya_idx_t on dinya_test(item_id)

   global partition by range(item_id)

   (

   partition idx_ values less than ( ) tablespace dinya_space

   partition idx_ values less than ( ) tablespace dinya_space

   partition idx_ values less than (maxvalue) tablespace dinya_space

   );

  Index created

  SQL>

  本例中對(duì)表的item_id字段建立索引分區(qū) 當(dāng)然也可以不指定索引分區(qū)名直接對(duì)整個(gè)表建立索引 如

  以下為引用的內(nèi)容

  SQL> create index dinya_idx_t on dinya_test(item_id);

  Index created

  SQL>

  同樣的 對(duì)全局索引根據(jù)執(zhí)行計(jì)劃可以看出索引已經(jīng)可以使用

  以下為引用的內(nèi)容

  SQL> select * from dinya_test t where em_id= ;

  Execution Plan

  

   SELECT STATEMENT Optimizer=CHOOSE (Cost= Card= Bytes= )

   TABLE ACCESS (BY GLOBAL INDEX ROWID) OF DINYA_TEST (Cost

  = Card= Bytes= )

   INDEX (RANGE SCAN) OF DINYA_IDX_T (NON UNIQUE) (Cost=

  Card= )

  Statistics

  

   recursive calls

   db block gets

   consistent gets

   physical reads

   redo size

   bytes sent via SQL*Net to client

   bytes received via SQL*Net from client

   SQL*Net roundtrips to/from client

   sorts (memory)

   sorts (disk)

   rows processed

  SQL>

   分區(qū)表的維護(hù)

  了解了分區(qū)表的建立 索引的建立 表和索引的使用后 在應(yīng)用的還要經(jīng)常對(duì)分區(qū)進(jìn)行維護(hù)和管理 日常維護(hù)和管理的內(nèi)容包括 增加一個(gè)分區(qū) 合并一個(gè)分區(qū)及刪除分區(qū)等等 下面以范圍分區(qū)為例說(shuō)明增加 合并 刪除分區(qū)的一般操作

   增加一個(gè)分區(qū):

  以下為引用的內(nèi)容

  SQL> alter table dinya_test

   add partition part_ values less than(to_date( yyyy mm dd ))

  tablespace dinya_spa

  ce ;

  Table altered

  SQL>

  增加一個(gè)分區(qū)的時(shí)候 增加的分區(qū)的條件必須大于現(xiàn)有分區(qū)的更大值 否則系統(tǒng)將提示ORA partition bound must collate higher than that of the last partition 錯(cuò)誤

   合并一個(gè)分區(qū)

  以下為引用的內(nèi)容

  SQL> alter table dinya_test merge partitions part_ part_ into partition part_ ;

  Table altered

  SQL>

  在本例中將原有的表的part_ 分區(qū)和part_ 分區(qū)進(jìn)行了合并 合并后的分區(qū)為part_ 如果在合并的時(shí)候把合并后的分區(qū)定為part_ 的時(shí)候 系統(tǒng)將提示ORA cannot reuse lower bound partition as resulting partition 錯(cuò)誤

   刪除分區(qū)

  以下為引用的內(nèi)容

  SQL> alter table dinya_test drop partition part_ ;

  Table altered

  SQL>

  刪除分區(qū)表的一個(gè)分區(qū)后 查詢?cè)摫淼臄?shù)據(jù)時(shí)顯示 該分區(qū)中的數(shù)據(jù)已全部丟失 所以執(zhí)行刪除分區(qū)動(dòng)作時(shí)要慎重 確保先備份數(shù)據(jù)后再執(zhí)行 或?qū)⒎謪^(qū)合并

   總結(jié)

lishixinzhi/Article/program/Oracle/202311/17329

開(kāi)源數(shù)據(jù)庫(kù)Sharding技術(shù)[1]

從 Shard 到 Sharding

   Shard 這個(gè)詞英文的意思是 碎片 而作為數(shù)據(jù)庫(kù)相關(guān)的技術(shù)用語(yǔ) 似乎最早見(jiàn)于大型多人在線角色扮演游戲(MMORPG)中的 Sharding 姑且稱之為 分片

  Sharding 不是一門新技術(shù) 而是一個(gè)相對(duì)簡(jiǎn)樸的軟件理念 如您所知 MySQL 之后才有了數(shù)據(jù)表分區(qū)功能 那么在此之前 很多 MySQL 的潛在用戶源頃都對(duì) MySQL 的擴(kuò)展性有所顧慮 而是否具備分區(qū)功能就成了衡量一個(gè)數(shù)據(jù)庫(kù)可擴(kuò)展性與否的一個(gè)關(guān)鍵指標(biāo)(當(dāng)然不是唯一指標(biāo)) 數(shù)據(jù)庫(kù)擴(kuò)展性是一個(gè)永恒的話題 MySQL 的推廣者經(jīng)常會(huì)被問(wèn)到 如在單一數(shù)據(jù)庫(kù)上處帶裂哪理應(yīng)用數(shù)據(jù)捉襟見(jiàn)肘而需要進(jìn)行分區(qū)化之類的處理 是如何辦到的呢? 答案是 Sharding

  Sharding 不是一個(gè)某個(gè)特定數(shù)據(jù)庫(kù)軟件附屬的功能 而是在具體技術(shù)細(xì)節(jié)之上的抽象處理 是水平擴(kuò)展(Scale Out 亦或橫向擴(kuò)展 向外擴(kuò)展)的解決方案 其主要目的是為突破單節(jié)點(diǎn)數(shù)據(jù)庫(kù)服務(wù)器的 I/O 能力限制 解決數(shù)據(jù)庫(kù)擴(kuò)展性問(wèn)題

  

事關(guān)數(shù)據(jù)庫(kù)擴(kuò)展性

  說(shuō)起數(shù)據(jù)庫(kù)擴(kuò)展性 這是個(gè)非常大的話題 目前的商業(yè)數(shù)據(jù)都有自己的擴(kuò)展性解決方案 在過(guò)去相對(duì)來(lái)說(shuō)比較成熟 但是隨著互聯(lián)網(wǎng)的高速發(fā)展 不可避免的會(huì)帶來(lái)一些計(jì)算模式上的演變 這樣很多主流商業(yè)系統(tǒng)也難免暴露出一些不足之處 比如 Oracle 的 RAC 是采用共享存儲(chǔ)機(jī)制 對(duì)于 I/O 密集型的應(yīng)用 瓶頸很容易落在存儲(chǔ)上 這樣的機(jī)制決定后續(xù)擴(kuò)容只能是 Scale Up(向上擴(kuò)展) 類型 對(duì)于硬件成本 開(kāi)發(fā)人員的要求 維護(hù)成本都相對(duì)比較高

  Sharding 基本上是針對(duì)開(kāi)源數(shù)據(jù)庫(kù)的擴(kuò)展性解決方案 很少有聽(tīng)說(shuō)商業(yè)數(shù)據(jù)庫(kù)進(jìn)行 Sharding 的 目前業(yè)界的趨勢(shì)基本上是擁抱 Scale Out 逐漸從 Scale Up 中解放出來(lái)

  

Sharding 的應(yīng)用場(chǎng)景

  任何技術(shù)都是在合適的場(chǎng)合下能發(fā)揮應(yīng)有的作用 Sharding 也一樣 聯(lián)機(jī)游戲 IM BSP 都是比較適合 Sharding 的應(yīng)用場(chǎng)景 其共性是抽象出來(lái)的數(shù)據(jù)對(duì)象之間的關(guān)聯(lián)數(shù)據(jù)很小 比如IM 每個(gè)用戶如果抽象成一個(gè)數(shù)據(jù)對(duì)象 完全可以獨(dú)立存儲(chǔ)在任何一個(gè)地方 數(shù)據(jù)對(duì)象是 Share Nothing 的 再比如 Blog 服務(wù)提供商的站點(diǎn)內(nèi)容 基本為用戶生成內(nèi)容(UGC) 完全可蠢碼以把不同的用戶隔離到不同的存儲(chǔ) 而對(duì)用戶來(lái)說(shuō)是透明的

  這個(gè) Share Nothing 是從數(shù)據(jù)庫(kù)集群中借用的概念 舉例來(lái)說(shuō) 有些類型的數(shù)據(jù)粒度之間就不是 Share Nothing 的 比如類似交易記錄的歷史表信息 如果一條記錄中既包含賣家信息與買家信息 如果隨著時(shí)間推移 買 賣家會(huì)分別與其他用戶繼續(xù)進(jìn)行交易 這樣不可避免的兩個(gè)買賣家的信息會(huì)分布到不同的 Sharding DB 上 而這時(shí)如果針對(duì)買賣家查詢 就會(huì)跨越更多的 Sharding 開(kāi)銷就會(huì)比較大

  Sharding 并不是數(shù)據(jù)庫(kù)擴(kuò)展方案的銀彈 也有其不適合的場(chǎng)景 比如處理事務(wù)型的應(yīng)用就會(huì)非常復(fù)雜 對(duì)于跨不同DB的事務(wù) 很難保證完整性 得不償失 所以 采用什么樣的 Sharding 形式 不是生搬硬套的

  

Sharding與數(shù)據(jù)庫(kù)分區(qū)(Partition)的區(qū)別

  有的時(shí)候 Sharding 也被近似等同于水平分區(qū)(Horizontal Partitioning) 網(wǎng)上很多地方也用 水平分區(qū)來(lái)指代 Sharding 但我個(gè)人認(rèn)為二者之間實(shí)際上還是有區(qū)別的 的確 Sharding 的思想是從分區(qū)的思想而來(lái) 但數(shù)據(jù)庫(kù)分區(qū)基本上是數(shù)據(jù)對(duì)象級(jí)別的處理 比如表和索引的分區(qū) 每個(gè)子數(shù)據(jù)集上能夠有不同的物理存儲(chǔ)屬性 還是單個(gè)數(shù)據(jù)庫(kù)范圍內(nèi)的操作 而 Sharding 是能夠跨數(shù)據(jù)庫(kù) 甚至跨越物理機(jī)器的

lishixinzhi/Article/program/SQL/202311/16326

關(guān)于數(shù)據(jù)庫(kù)分區(qū)擴(kuò)容的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都網(wǎng)站推廣找創(chuàng)新互聯(lián),老牌網(wǎng)站營(yíng)銷公司
成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)(www.cdcxhl.com)專注高端網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì)制作,網(wǎng)站維護(hù),網(wǎng)絡(luò)營(yíng)銷,SEO優(yōu)化推廣,快速提升企業(yè)網(wǎng)站排名等一站式服務(wù)。IDC基礎(chǔ)服務(wù):云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)、服務(wù)器租用、服務(wù)器托管提供四川、成都、綿陽(yáng)、雅安、重慶、貴州、昆明、鄭州、湖北十堰機(jī)房互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)。


網(wǎng)站欄目:數(shù)據(jù)庫(kù)分區(qū)擴(kuò)容,實(shí)現(xiàn)更高效的數(shù)據(jù)存儲(chǔ) (數(shù)據(jù)庫(kù)分區(qū)擴(kuò)容)
當(dāng)前路徑:http://m.5511xx.com/article/djdhpdc.html