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 子句
您可以使用 ZFOR 子句指定要分配给给定资源组的线程。
假设我们创建了另一个资源组,如下所示 -
CREATE RESOURCE GROUP test TYPE = USER THREAD_PRIORITY = 15;
以下查询将特定线程设置为上面创建的资源组 -
SET RESOURCE GROUP test FOR 21, 15, 6;