Oracle10パーティションとMySQLパーティションの違いの詳細な説明

Oracle10パーティションとMySQLパーティションの違いの詳細な説明

一般的に使用される Oracle10g パーティションは、範囲 (範囲パーティション)、リスト (リスト パーティション)、ハッシュ (ハッシュ パーティション)、範囲ハッシュ (範囲ハッシュ パーティション)、および範囲リスト (リスト複合パーティション) です。

レンジ パーティション分割: レンジ パーティション分割は、広く使用されているテーブル パーティション分割方法です。列値の範囲をパーティション分割条件として使用し、列値が配置されているレンジ パーティションにレコードを格納します。

たとえば、パーティションが時間に基づいている場合、2010 年 1 月のデータはパーティション a に配置され、2 月のデータはパーティション b に配置されます。パーティションを作成するときは、パーティションの基準となる列と範囲値を指定する必要があります。

時間でパーティション分割する場合、一部のレコードの範囲が当面予測できない場合は、maxvalue パーティションを作成できます。指定された範囲にないすべてのレコードは、maxvalue が配置されているパーティションに格納されます。のように:

createtable pdba (ID 番号、時刻日付) 範囲によるパーティション (時刻)
(
パーティションp1の値が(to_date('2010-10-1'、'yyyy-mm-dd'))より小さい場合、
パーティションp2の値が(to_date('2010-11-1'、'yyyy-mm-dd'))より小さい場合、
パーティションp3の値が(to_date('2010-12-1'、'yyyy-mm-dd'))より小さい
パーティションp4の値が(maxvalue)より小さい
)

ハッシュパーティション:

範囲に効果的に分割できないテーブルの場合、ハッシュ パーティション分割を使用すれば、パフォーマンスの向上に役立ちます。ハッシュ パーティション分割では、テーブル内のデータが、指定した複数のパーティションに均等に分散されます。列が配置されているパーティションは、パーティション列のハッシュ値に基づいて自動的に割り当てられます。したがって、どのレコードがどのパーティションに配置されるかを制御または把握することはできません。ハッシュ パーティション分割では、複数の従属列もサポートされます。のように:

作成可能テスト
(
transaction_idnumber 主キー、
item_idnumber(8)がnullではありません
)
ハッシュによるパーティション(トランザクションID)
(
パーティションpart_01 表領域tablespace01、
パーティションpart_02 表領域 tablespace02、
パーティションpart_03 テーブルスペース tablespace03
);

ここでは、各パーティションの表領域を指定します。

リストパーティション:

リスト パーティション分割では、列の値も指定する必要があります。パーティション値は明示的に指定する必要があります。パーティション列は 1 つだけです。範囲パーティション分割やハッシュ パーティション分割とは異なり、複数の列を同時にパーティション依存列として指定することはできません。ただし、1 つのパーティションに複数の対応する値を設定できます。

パーティション分割を行う際は、パーティション列の可能な値を決定する必要があります。挿入された列の値がパーティション範囲外になると、挿入/更新は失敗します。そのため、通常、リスト パーティション分割を使用して指定された範囲外のレコードを格納する場合は、範囲パーティションの maxvalue パーティションと同様に、デフォルト パーティションを作成することをお勧めします。

都市コードなどの特定のフィールドに基づいてパーティション分割する場合は、デフォルトのパーティションを指定し、パーティション分割ルールに準拠しないすべてのデータをこのデフォルトのパーティションに配置できます。のように:

作成テーブルcustaddr
(
idvarchar2(15バイト) NULLではない、
エリアコードvarchar2(4バイト)
)
パーティションリスト (エリアコード)
(パーティションt_list025の値('025')、
パーティションt_list372値('372')、
パーティションt_list510値('510')、
パーティションp_other値(デフォルト)
)

結合されたパーティション:

列ごとにパーティション分割した後もテーブルが大きい場合、またはその他の要件がある場合は、パーティション内にサブパーティションを作成してパーティションをさらにパーティション分割することができます。つまり、複合パーティション方式です。

10g には、範囲ハッシュと範囲リストの 2 種類の複合パーティションがあります。順序に注意してください。ルート パーティションは範囲パーティションのみにすることができ、サブパーティションはハッシュ パーティションまたはリスト パーティションにすることができます。

のように:

作成可能テスト
(
transaction_idnumber 主キー、
取引日
)
範囲(transaction_date)によるパーティション分割、ハッシュ(transaction_id)によるサブパーティション分割
サブパーティション3は(tablespace01、tablespace02、tablespace03)に格納されます。
(
パーティションpart_01の値が(to_date('2009-01-01','yyyy-mm-dd'))より小さい
パーティションpart_02の値が(to_date('2010-01-01','yyyy-mm-dd'))より小さい
パーティションpart_03の値が(maxvalue)より小さい
);
createtable emp_sub_template (部門番号、従業員名 varchar(32)、等級番号)
範囲(部門番号)によるパーティション分割、ハッシュ(従業員名)によるサブパーティション分割
サブパーティションテンプレート
(サブパーティション表領域ts1、
サブパーティションb 表領域ts2、
サブパーティションc 表領域 ts3、
サブパーティション化された表領域 ts4
)
(partitionp1の値が(1000)未満の場合)
パーティションp2の値が(2000)未満の場合、
パーティションp3の値が(maxvalue)より小さい
);
四半期地域別売上表を作成します
(部門番号、項目番号varchar2(20)、
txn_date日付、txn_amount番号、状態varchar2(2))
テーブルスペース4
パーティション範囲 (txn_date)
サブパーティションリスト (状態)
(partitionq1_1999 の値は (to_date('1-apr-1999','dd-mon-yyyy') より小さい)
(サブパーティションq1_1999_northwest値(「または」、「wa」)、
サブパーティションq1_1999_southwest値(「az」、「ut」、「nm」)、
サブパーティションq1_1999_northeast値(「ny」、「vm」、「nj」)、
サブパーティションq1_1999_southeast値(「fl」、「ga」)、
サブパーティションq1_1999_northcentral値(「sd」、「wi」)、
サブパーティションq1_1999_southcentral値(「ok」、「tx」)
)、
パーティションq2_1999の値が(to_date('1-jul-1999'、'dd-mon-yyyy'))より小さい
(サブパーティションq2_1999_northwest値(「または」、「wa」)、
サブパーティションq2_1999_southwest値('az'、'ut'、'nm')、
サブパーティションq2_1999_northeast値(「ny」、「vm」、「nj」)、
サブパーティションq2_1999_southeast値(「fl」、「ga」)、
サブパーティションq2_1999_northcentral値(「sd」、「wi」)、
サブパーティションq2_1999_southcentral値(「ok」、「tx」)
)、
パーティションq3_1999の値は(to_date('1-oct-1999'、'dd-mon-yyyy'))より小さい
(サブパーティションq3_1999_northwest値(「または」、「wa」)、
サブパーティションq3_1999_southwest値('az'、'ut'、'nm')、
サブパーティションq3_1999_northeast値(「ny」、「vm」、「nj」)、
サブパーティションq3_1999_southeast値(「fl」、「ga」)、
サブパーティションq3_1999_northcentral値(「sd」、「wi」)、
サブパーティションq3_1999_southcentral値(「ok」、「tx」)
)、
パーティションq4_1999の値が(to_date('1-jan-2000'、'dd-mon-yyyy'))より小さい
(サブパーティションq4_1999_northwest値(「または」、「wa」)、
サブパーティションq4_1999_southwest値('az'、'ut'、'nm')、
サブパーティションq4_1999_northeast値(「ny」、「vm」、「nj」)、
サブパーティションq4_1999_southeast値(「fl」、「ga」)、
サブパーティションq4_1999_northcentral値(「sd」、「wi」)、
サブパーティションq4_1999_southcentral値(「ok」、「tx」)
)
);

MySQLのパーティションは一般的に範囲、リスト、ハッシュ、キーなどが使用されます。

RANGE パーティション分割: タプルは列値の範囲に基づいてパーティションに割り当てられます。

 リスト パーティション分割: RANGE パーティション分割と似ていますが、リスト パーティション分割は離散値セット内の値と一致する列値に基づいている点が異なります。

 HASH パーティショニング: テーブルに挿入される行の列値を使用して計算されたユーザー定義関数の戻り値に基づいてパーティションが選択されます。この関数には、負でない整数値を生成する、MySQL で有効な任意の式を含めることができます。

 KEY パーティショニング: HASH パーティショニングと似ていますが、KEY パーティショニングでは 1 つ以上の列の計算のみがサポートされ、MySQL サーバーが独自のハッシュ関数を提供する点が異なります。

上記は、Oracle 10 パーティションと MySQL パーティションの違いについての詳細な説明です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • 3つの主要データベース(Mysql、SqlServer、Oracle)の違いについて簡単に説明します。
  • Mybatis foreach バッチ挿入データ: Oracle と MySQL の違いの紹介
  • OracleとMySQLのページングの違いの簡単な分析
  • MySQLとOracleの違いを簡単に説明してください
  • Oracle、MySQL、SqlServe のページング クエリ ステートメントの違いの概要
  • Oracle と MySQL の 9 つの違い
  • Oracle と MySQL の自動増分列 (ID) の違い
  • MySQLとOracleの更新の違いを分析する
  • MySQLとOracleの構文の違いの詳細な比較
  • Oracle と MySQL の主キー、インデックス、ページングの違いの概要
  • MySQLとOracleの違いのまとめ(機能性能の比較、選択、使用時のSQLなど)

<<:  vue3 watch と watchEffect の使い方と違い

>>:  Trash-Cli: Linux のコマンドラインごみ箱ツール

推薦する

js は、州、市、地区の 3 段階の選択カスケードを実装します。

この記事では、省、市、地区の3段階選択を実現するためのjsの具体的なコードを紹介します。具体的な内容...

CSS3 のフィルタプロパティの使用に関する詳細な説明

最近、イントラネットポータルを修正していたときに、フィルターを使用する必要がある箇所に遭遇しました。...

nginx ip ブラックリストの動的禁止の例

ウェブサイトが悪意を持ってリクエストされた場合、IP アドレスをブラックリストに登録することは重要な...

MySQL の group by と having の詳細な説明

GROUP BY 構文を使用すると、指定されたデータ列の各メンバーに従ってクエリ結果をグループ化して...

URL 内の特殊記号の意味を知っていますか?

1.# # は Web ページ内の場所を表します。右側の文字はその位置の識別子です。たとえば、ht...

Vueは複数列レイアウトドラッグを実装します

この記事では、マルチカラムレイアウトドラッグを実装するためのVueの具体的なコードを参考までに共有し...

Web ページでパラメータ名によって ActiveX コントロールのプロパティに値を割り当てる例

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

プレーンな JS オブジェクトの代わりに Map を使用する場合

目次1. マップは任意のタイプのキーを受け入れます2. マップにはキー名に関する制限はありません3....

Vueライフサイクル機能の詳細な説明

目次ライフサイクル関数一般的なライフサイクルフックVue のインスタンス破棄について:要約するライフ...

Node.js のワーカー スレッドの詳細な理解

目次概要Node.js における CPU バウンド アプリケーションの歴史CPUを集中的に使用する操...

Docker+DockerCompose を使用して Web アプリケーションをカプセル化する方法

目次テクノロジースタックバックエンドビルドAPIフロントエンドウェブ構築ゲートウェイ建設ゲートウェイ...

HTML 5のドラフトは正式な標準にはならなかった

<br />昨日、W3C で新しいHTML 5 ドラフト (ワーキング ドラフト) が ...

nginx でクロスドメイン障害修復を構成する方法の例

Nginxのクロスドメイン設定は次のようには機能しません サーバー{ 聞く 80; server_n...

Vueのレスポンシブシステムの原理の詳細な説明

目次Vueのレスポンシブシステムの基本原則1. Object.definePropertyの使い方を...

HTML テーブルタグチュートリアル (46): テーブルフッタータグ

<tfoot> タグは、テーブル フッターのスタイルを定義するために使用されます。基本構...