MySQL - DROP RESOURCE GROUP 语句
在 MySQL 中,您可以创建资源组并将线程分配给这些组。这些线程的执行取决于组中资源的可用性,即资源组的属性控制资源,而组中的线程则受限于可用资源。
MySQL 提供了各种语句来创建、修改、删除组资源,以及将线程分配给组资源。
DROP RESOURCE GROUP 语句
您可以使用 MySQL DROP RESOURCE GROUP 语句删除/删除现有资源组。您需要 RESOURCE_GROUP_ADMIN 权限才能执行该语句。
语法
以下是 MySQL DROP RESOURCE GROUP 语句的语法 -
CREATE RESOURCE GROUP group_name TYPE = {SYSTEM|USER} [VCPU [=] vcpu_spec [, vcpu_spec] ...] [THREAD_PRIORITY [=] N] [ENABLE|DISABLE]
其中,group_name 是您需要删除的资源组的名称。
示例
假设我们已经使用 CREATE RESOURCE GROUP 语句创建了一个资源组,如下所示 -
CREATE RESOURCE GROUP test_group TYPE = USER VCPU = 0 THREAD_PRIORITY = 2 DISABLE;
以下查询将删除上面创建的资源组 -
DROP RESOURCE GROUP test_group;
如果您尝试删除一个不存在的资源组,则会生成以下错误 -
DROP RESOURCE GROUP none; ERROR 3651 (HY000): Resource Group 'none' does not exist.
FORCE 子句
如果删除现有资源组时,该资源组包含线程,则会生成错误。在这种情况下,如果使用 FORCE 子句,该组的线程将被移动到默认组,然后该组将被删除。
示例
假设我们创建了一个如下所示的资源组 -
CREATE RESOURCE GROUP sample TYPE = USER;
如果我们将当前线程分配给上面创建的资源组,如下所示 -
SET RESOURCE GROUP sample;
现在,如果您尝试在不使用 FORCE 子句的情况下删除资源组 sample,则会生成如下所示的错误 -
DROP RESOURCE GROUP sample; ERROR 3656 (HY000): Resource group sample is busy.
如果使用 FORCE 子句,资源组将被删除而不会出现错误(尽管它包含资源)。
DROP RESOURCE GROUP sample FORCE;