CREATE RESOURCE GROUP

You can use the CREATE RESOURCE GROUP statement to create a resource group.

Synopsis

CreateResourceGroupStmt
CREATERESOURCEGROUPIfNotExistsResourceGroupNameResourceGroupOptionList
IfNotExists
IFNOTEXISTS
ResourceGroupName
Identifier
ResourceGroupOptionList
DirectResourceGroupOptionResourceGroupOptionListDirectResourceGroupOptionResourceGroupOptionList,DirectResourceGroupOption
DirectResourceGroupOption
RU_PER_SECEqOptstringLitPRIORITYEqOptResourceGroupPriorityOptionBURSTABLEBURSTABLEEqOptBooleanQUERY_LIMITEqOpt(ResourceGroupRunawayOptionList)QUERY_LIMITEqOpt()QUERY_LIMITEqOptNULL
ResourceGroupPriorityOption
LOWMEDIUMHIGH
ResourceGroupRunawayOptionList
DirectResourceGroupRunawayOptionResourceGroupRunawayOptionListDirectResourceGroupRunawayOptionResourceGroupRunawayOptionList,DirectResourceGroupRunawayOption
DirectResourceGroupRunawayOption
EXEC_ELAPSEDEqOptstringLitACTIONEqOptResourceGroupRunawayActionOptionWATCHEqOptResourceGroupRunawayWatchOptionDURATIONEqOptstringLit
ResourceGroupRunawayWatchOption
EXACTSIMILAR
ResourceGroupRunawayActionOption
DRYRUNCOOLDOWNKILL

The resource group name parameter (ResourceGroupName) must be globally unique.

TiDB supports the following DirectResourceGroupOption, where Request Unit (RU) is a unified abstraction unit in TiDB for CPU, IO, and other system resources.

OptionDescriptionExample
RU_PER_SECRate of RU backfilling per secondRU_PER_SEC = 500 indicates that this resource group is backfilled with 500 RUs per second
PRIORITYThe absolute priority of tasks to be processed on TiKVPRIORITY = HIGH indicates that the priority is high. If not specified, the default value is MEDIUM.
BURSTABLEIf the BURSTABLE attribute is set, TiDB allows the corresponding resource group to use the available system resources when the quota is exceeded.
QUERY_LIMITWhen the query execution meets this condition, the query is identified as a runaway query and the corresponding action is executed.QUERY_LIMIT=(EXEC_ELAPSED='60s', ACTION=KILL, WATCH=EXACT DURATION='10m') indicates that the query is identified as a runaway query when the execution time exceeds 60 seconds. The query is terminated. All SQL statements with the same SQL text will be terminated immediately in the coming 10 minutes. QUERY_LIMIT=() or QUERY_LIMIT=NULL means that runaway control is not enabled. See Runaway Queries.

Examples

Create two resource groups rg1 and rg2.

DROP RESOURCE GROUP IF EXISTS rg1;
Query OK, 0 rows affected (0.22 sec)
CREATE RESOURCE GROUP IF NOT EXISTS rg1 RU_PER_SEC = 100 PRIORITY = HIGH BURSTABLE;
Query OK, 0 rows affected (0.08 sec)
CREATE RESOURCE GROUP IF NOT EXISTS rg2 RU_PER_SEC = 200 QUERY_LIMIT=(EXEC_ELAPSED='100ms', ACTION=KILL);
Query OK, 0 rows affected (0.08 sec)
SELECT * FROM information_schema.resource_groups WHERE NAME ='rg1' or NAME = 'rg2';
+------+------------+----------+-----------+---------------------------------+ | NAME | RU_PER_SEC | PRIORITY | BURSTABLE | QUERY_LIMIT | +------+------------+----------+-----------+---------------------------------+ | rg1 | 100 | HIGH | YES | NULL | | rg2 | 200 | MEDIUM | NO | EXEC_ELAPSED=100ms, ACTION=KILL | +------+------------+----------+-----------+---------------------------------+ 2 rows in set (1.30 sec)

MySQL compatibility

MySQL also supports CREATE RESOURCE GROUP. However, the acceptable parameters are different from that of TiDB so that they are not compatible.

See also