MySQL - ALTER RESOURCE GROUP 语句
在 MySQL 中,您可以创建资源组并将线程分配给这些组。这些线程根据组中资源的可用性执行,即组属性控制资源,并且组中的线程受限于可用资源。
MySQL 提供了各种语句来创建、修改、删除组资源以及将线程分配给组资源。
ALTER RESOURCE GROUP 语句
您可以使用 MySQL ALTER RESOURCE GROUP 语句修改现有资源组的 CPU 亲和力和线程优先级值。您还可以使用此语句修改资源组的初始状态(ENABLE 或 DISABLE)。您需要 RESOURCE_GROUP_ADMIN 权限才能执行该语句。
语法
以下是 MySQL ALTER RESOURCE GROUP 语句的语法 -
ALTER RESOURCE GROUP group_name [VCPU [=] vcpu_spec [, vcpu_spec] ...] [THREAD_PRIORITY [=] N] [ENABLE|DISABLE]
其中,group_name 是您需要修改的组的名称。
更改 CPU 亲和性
CREATE RESOURCE GROUP 语句的 VPU 属性用于设置资源组的 CPU 亲和性。如果您未指定此值,则该组将使用所有可用的 CPU。
假设我们已创建了一个资源组,并为其 CPU 亲和性指定了一些值,如下所示 -
CREATE RESOURCE GROUP sample_group1 TYPE = USER VCPU = 0,1,2,3;
以下查询将更改上述创建的资源组的 CPU 亲和性值 -
ALTER RESOURCE GROUP sample_group1 VCPU = 0;
线程优先级属性
线程优先级属性用于设置要创建的线程的优先级,如果您未指定此值,则默认值为 0。资源组中线程的优先级范围为 -20 到 19。
假设我们创建了一个资源,并将线程优先级值设置为 2,如下所示 -
CREATE RESOURCE GROUP sample_group2 TYPE = USER VCPU = 0 THREAD_PRIORITY = 2;
以下查询将更改上述查询的线程优先级 -
ALTER RESOURCE GROUP sample_group2 THREAD_PRIORITY = 15;
ENABLE 属性
如果在查询中使用 ENABLE(属性值),则资源组初始处于启用状态;如果在语句中指定 DISABLE,则资源组初始处于禁用状态。
假设我们已通过将此值设置为 DISABLE 创建了一个资源组,如下所示 -
CREATE RESOURCE GROUP sample_group3 TYPE = USER VCPU = 0 THREAD_PRIORITY = 2 DISABLE;
以下查询将修改上面创建的资源组 -
ALTER RESOURCE GROUP sample_group3 ENABLE;
更改不存在的资源组
如果您尝试更改不存在的资源组,则会生成以下错误 -
ALTER RESOURCE GROUP none THREAD_PRIORITY = 15; ERROR 3651 (HY000): Resource Group 'none' does not exist.