MySQL 8.0 リファレンスマニュアル


13.7.2.2 CREATE RESOURCE GROUP ステートメント

CREATE RESOURCE GROUP group_name
    TYPE = {SYSTEM|USER}
    [VCPU [=] vcpu_spec [, vcpu_spec] ...]
    [THREAD_PRIORITY [=] N]
    [ENABLE|DISABLE]

vcpu_spec: {N | M - N}

CREATE RESOURCE GROUP は、リソースグループの管理に使用されます (セクション5.1.16「リソースグループ」 を参照)。 このステートメントは、新しいリソースグループを作成し、その初期属性値を割り当てます。 RESOURCE_GROUP_ADMIN 権限が必要です。

group_name は、作成するリソースグループを識別します。 グループがすでに存在する場合は、エラーが発生します。

TYPE 属性は必須です。 システムリソースグループの場合は SYSTEM、ユーザーリソースグループの場合は USER である必要があります。 グループタイプは、後で説明するように、許可される THREAD_PRIORITY 値に影響します。

VCPU 属性は、CPU アフィニティ、つまりグループが使用できる仮想 CPU のセットを示します:

  • VCPU が指定されていない場合、リソースグループは CPU アフィニティーを持たず、使用可能なすべての CPU を使用できます。

  • VCPU が指定されている場合、属性値はカンマ区切りの CPU 番号または範囲のリストです:

    • 各数値は、0 から CPU の数 -1 までの範囲の整数である必要があります。 たとえば、64 個の CPU を持つシステムでは、0 から 63 の範囲の数値を指定できます。

    • 範囲は M N の形式で指定します。ここで、MN 以下で、両方の数値は CPU 範囲内にあります。

    • CPU 番号が許容範囲外の整数であるか、整数でない場合は、エラーが発生します。

VCPU 指定子の例 (これらはすべて同等です):

VCPU = 0,1,2,3,9,10
VCPU = 0-3,9-10
VCPU = 9,10,0-3
VCPU = 0,10,1,9,3,2

THREAD_PRIORITY 属性は、グループに割り当てられたスレッドの優先度を示します:

  • THREAD_PRIORITY が指定されていない場合、デフォルトの優先度は 0 です。

  • THREAD_PRIORITY が指定されている場合、属性値は -20 (最高優先度) から 19 (最低優先度) の範囲内である必要があります。 システムリソースグループの優先順位は -20 から 0 の範囲内である必要があります。 ユーザーリソースグループの優先順位は、0 から 19 の範囲内である必要があります。 システムグループとユーザーグループに異なる範囲を使用すると、ユーザースレッドの優先度がシステムスレッドより高くなることはありません。

ENABLE および DISABLE は、リソースグループを最初に有効または無効にすることを指定します。 どちらも指定しない場合、グループはデフォルトで有効になります。 無効化されたグループにスレッドを割り当てることはできません。

例:

  • 単一の CPU と最も低い優先度を持つ有効なユーザーグループを作成します:

    CREATE RESOURCE GROUP rg1
      TYPE = USER
      VCPU = 0
      THREAD_PRIORITY = 19;
  • CPU アフィニティがなく (すべての CPU を使用できる)、優先度が最も高い無効なシステムグループを作成します:

    CREATE RESOURCE GROUP rg2
      TYPE = SYSTEM
      THREAD_PRIORITY = -20
      DISABLE;

リソースグループ管理は、リソースグループが発生したサーバーに対してローカルです。 CREATE RESOURCE GROUP ステートメントはバイナリログに書き込まれず、レプリケートされません。


関連キーワード:  ステートメント, CREATE, グループ, TABLE, DROP, RESOURCE, サブクエリー, FUNCTION, SLAVE, リソース