MySQL PARTITION BY 子句

WBOY
WBOY転載
2023-08-29 21:25:021679ブラウズ

MySQL PARTITION BY 子句

Partition By 句を使用すると、クエリのパフォーマンスを向上させることができます。ストレージ要件が軽減され、データ管理性が向上します。大きなテーブルを分割することにより、データのごく一部にのみアクセスするクエリをより高速に実行できます。パーティショニングにより、バックアップとリカバリの時間も短縮されます。この記事では、MySQL の Partition By 句について、構文とさまざまな例を示して説明します。

###導入###

PARTITION BY 句の目的は、テーブルの行を個別のパーティションにグループ化することです。これは、同じパーティション内の他の行を使用して、パーティション内の特定の行に対して計算を実行する場合に特に便利です。

PARTITION BY 句は常に OVER() 句内で使用する必要があります。 PARTITION BY 句によって作成されたパーティションはウィンドウとも呼ばれます。この句は、RANK()、LEAD()、LAG() などのウィンドウ関数に特に作用します。

OVER() 句から PARTITION BY 句を除外すると、テーブル全体が 1 つのパーティションとして扱われます。

###文法### リーリー

order_clause と Frame_clause は文法のオプションのコンポーネントです。

MySQL では、Partition 句の式はカラム名または組み込み関数になります。ただし、標準 SQL では、式に列名のみを使用できます。

###例###

「ハッカー」テーブルを例に挙げてみましょう -

h_id

h_nameチャレンジID分数ラジュ11120ミスラッシュ11180ルドラ11240モハン11490ロハン11230ソーハン11240 これを実現するには、次のクエリを使用します: リーリー このクエリでは、partition by 句によってテーブルがChallenge_id によってグループ化されます。

3

2

5

5

4

1

各チャレンジにおける各ハッカーのランキングを決定する必要があります。言い換えれば、チャレンジに参加したすべてのハッカーと、そのチャレンジにおけるそれぞれのランキングをリストする必要があります。

order by 句は、各パーティション内のハッカーをスコアの降順に並べ替えます。

over() 句は、ウィンドウ関数 Rank() のテーブル行を分割および並べ替える方法を指定します。

ウィンドウ関数 Density_rank() は、チャレンジの順序付けられたパーティション内の各ハッカーにランクを割り当てます。 2 人のハッカーが同じスコアを持っている場合、同じランキングが割り当てられます。

結果出力には、すべてのハッカーのリストと各チャレンジのそれぞれのランキングが表示されます -

チャレンジID

h_idh_name分数ミスラッシュ801ラジュ202ルドラ401ソーハン401ロハン302モハン901PARTITION BY 句の使用法テーブルの行を個別のパーティションにグループ化して、パーティション内の特定の行に対して計算を実行できるようにします。

######ランキング######

111

2

111

3

112

112

1

112

4

114

5

このようにして、すべてのハッカーのリストと、それぞれのチャレンジにおけるそのランキングを取得することができました。

ストレージ要件を削減し、データ管理性を向上させます。

    データのごく一部にのみアクセスするクエリをより高速に実行することで、クエリのパフォーマンスを向上させます。
  • バックアップとリカバリの時間を短縮します。
  • ###結論は### MySQL の PARTITION BY 句は、テーブルの行を個別のパーティションにグループ化するための便利なツールです。これにより、クエリのパフォーマンスが向上し、ストレージ要件が軽減されます。この句は、RANK()、LEAD()、LAG() などのウィンドウ関数に特に作用します。構文はシンプルで、句で使用される式の種類を柔軟に選択できます。上の例は、各顧客の合計売上を計算するときの PARTITION BY 句の機能を示しています。この強力な機能を利用することで、ユーザーはデータベースのパフォーマンスを最適化し、データの管理性を向上させることができます。

以上がMySQL PARTITION BY 子句の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。