CREATE RESOURCE GROUP
You can use the CREATE RESOURCE GROUP
statement to create a resource group.
Synopsis
CreateResourceGroupStmt:
"CREATE" "RESOURCE" "GROUP" IfNotExists ResourceGroupName ResourceGroupOptionList
IfNotExists ::=
('IF' 'NOT' 'EXISTS')?
ResourceGroupName:
Identifier
ResourceGroupOptionList:
DirectResourceGroupOption
| ResourceGroupOptionList DirectResourceGroupOption
| ResourceGroupOptionList ',' DirectResourceGroupOption
DirectResourceGroupOption:
"RU_PER_SEC" EqOpt stringLit
| "BURSTABLE"
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.
Option | Description | Example |
---|---|---|
RU_PER_SEC | Rate of RU backfilling per second | RU_PER_SEC = 500 indicates that this resource group is backfilled with 500 RUs per second |
If the BURSTABLE
attribute is set, TiDB allows the corresponding resource group to use the available system resources when the quota is exceeded.
Examples
Create two resource groups rg1
and rg2
.
mysql> DROP RESOURCE GROUP IF EXISTS rg1;
Query OK, 0 rows affected (0.22 sec)
mysql> CREATE RESOURCE GROUP IF NOT EXISTS rg1
-> RU_PER_SEC = 100
-> BURSTABLE;
Query OK, 0 rows affected (0.08 sec)
mysql> CREATE RESOURCE GROUP IF NOT EXISTS rg2
-> RU_PER_SEC = 200;
Query OK, 0 rows affected (0.08 sec)
mysql> SELECT * FROM information_schema.resource_groups WHERE NAME ='rg1' or NAME = 'rg2';
+------+-------------+-----------+
| NAME | RU_PER_SEC | BURSTABLE |
+------+-------------+-----------+
| rg1 | 100 | YES |
| rg2 | 200 | NO |
+------+-------------+-----------+
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.