MySQL - SET RESOURCE GROUP 语句



在 MySQL 中,您可以创建资源组并将线程分配到这些组。这些线程根据组中资源的可用性执行,即组属性控制资源,并且组中的线程受可用资源的限制。

MySQL 提供了各种语句来创建、更改、删除资源组并将线程分配到资源组。

SET RESOURCE GROUP 语句

您可以使用 SET RESOURCE GROUP 语句将线程设置/分配到现有的 MySQL 资源组。您需要 RESOURCE_GROUP_ADMIN 权限才能执行该语句。

语法

以下是 MySQL SET RESOURCE GROUP 语句的语法:-

SET RESOURCE GROUP group_name
   [FOR threadID1, threadID2, threadID3, . . . . . . .]

其中,group_name 是您需要将指定线程分配到的资源组的名称,threadID1、threadID2、threadID3 是要分配到该组的线程。

如果您没有使用 FOR 查询指定线程 ID。则当前线程将分配到指定的资源组。

示例

假设我们使用 CREATE RESOURCE GROUP 语句创建了一个资源组,如下所示:-

CREATE RESOURCE GROUP test_group TYPE = USER 
VCPU = 0 THREAD_PRIORITY = 2 ENABLE;

以下查询将上面创建的资源组分配给当前线程。

SET RESOURCE GROUP test_group;

如果您尝试分配一个不存在的资源组,则会生成错误,如下所示:-

SET RESOURCE GROUP none;
ERROR 3651 (HY000): Resource Group 'none' does not exist.

FOR 子句

您可以使用 FOR 子句指定要分配给给定资源组的线程。

假设我们创建了另一个资源组,如下所示:-

CREATE RESOURCE GROUP test TYPE = USER THREAD_PRIORITY = 15;

以下查询将特定线程设置为上面创建的资源组:-

SET RESOURCE GROUP test FOR 21, 15, 6;
广告

© . All rights reserved.