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 のコマンドラインごみ箱ツール

推薦する

ウェブデザイナーは3つの側面からウェブページを最適化する必要がある

<br />帯域幅の増加に伴い、Web ページ上のオブジェクトも増えているため、Web ...

MySQL での Join の使用に関する詳細な説明

前の章では、1 つのテーブルからデータを読み取る方法を学習しました。これは比較的簡単ですが、実際のア...

MySQL 5.7.20 のインストールと設定方法のグラフィック チュートリアル (win10)

この記事では、MySQL 5.7.20のインストールと設定方法を参考までに紹介します。具体的な内容は...

axios リクエストのカプセル化に基づく Vue アプリケーションのサンプルコード

目次axiosとは何ですか? Axios リクエストタイプ? Axiosはデフォルトのカスタム構成を...

Flutterを使用して移動可能なスタックウィジェット機能を作成する

この投稿では、キャンバスとドラッグ可能なノード インターフェースを使用するデスクトップおよび Web...

du コマンドを使用して Linux システム ディレクトリのサイズを取得する方法

Linux システムを使用したことがある人なら、Linux システムの ls コマンドは通常、ファイ...

Vue3 における親コンポーネントと子コンポーネント間の値の転送の詳細な説明

vue3 が誕生してからかなり時間が経ち、筆者も最近になって vue3 を学び始めました。 vue2...

間違った MySQL コマンドをキャンセルしたい場合はどうすればいいですか?

間違った mysql コマンドを入力したのでキャンセルしたいです。どうすればいいですか? ctrl ...

MySQLはランダムに一定数のレコードを抽出します

以前は、このような使用シナリオを処理するために rand() で直接 order していましたが、効...

CentOS に MySQL 5.5 をインストールするための完全な手順

目次1. インストール前の準備、インストールパッケージのダウンロード1 インストールの準備2 インス...

JavaScript/TypeScript で同時リクエスト制御を実装するためのサンプルコード

シナリオリクエストが 10 件あるが、同時リクエストの最大数は 5 件で、リクエスト結果が必要である...

Vue マウスホイールスクロール切り替えルーティング効果を実装する方法

ルート ルーティング コンポーネント (アプリの下のルート ルーティング コンポーネント。子コンポー...

Nginx サーバーで URL リンクを設定する方法

LNMPのようなアーキテクチャを持つウェブサイトは、一般的にPHPフレームワークに基づいて開発されて...

Alibaba Cloud イメージリポジトリの Docker 構成変更の実装

docker リポジトリ自体は非常に遅いですが、中国の Alibaba Cloud ミラー リポジト...

つまり、フィルターコレクション

IE は開発の初期段階では頭を悩ませましたが、他のブラウザとは異なります。他のブラウザがサポートして...