Note
This statement was introduced in OceanBase Database V4.3.5 BP3.
Purpose
This statement is used to create a throttling rule that specifies the throttling scope to limit the concurrency of specific SQL statements.
Privilege requirements
To execute the CREATE CONCURRENT_LIMITING_RULE statement, the current user must have the CREATE privilege. For more information about the privileges of OceanBase Database, see Privilege types in MySQL mode
Syntax
CREATE CONCURRENT_LIMITING_RULE [ IF NOT EXISTS ] `ccl_rule_name`
ON `database`.`table`
TO '<usename>'@'ip'
FOR { ALL | UPDATE | SELECT | INSERT | DELETE }
filter_options:
[ FILTER BY KEYWORD('KEYWORD1', 'KEYWORD2',…) ]
with_options:
WITH MAX_CONCURRENCY = value1 [per sql]
Parameters
| Parameter | Description |
|---|---|
ccl_rule_name |
Required. The name of the throttling rule.
NoteTo avoid name conflicts with SQL keywords, we recommend that you add backticks (`) before and after the rule name. |
database.table |
Required. The name of the database and table. You can use the asterisk (*) to match any database or table name.
NoteTo avoid name conflicts with SQL keywords, we recommend that you add backticks (`) before and after the rule name. |
<usename>@<host> |
Required. The name of the account. The username can be specified as * to match all users. The host part can be specified as % to match any host. |
ALL|UPDATE \| SELECT \| INSERT\| DELETE |
Required. The type of the SQL statement. The supported values are ALL, UPDATE, SELECT, INSERT, and DELETE.
NoteEach throttling rule can only specify one type of SQL statement. |
[ filter_options ] |
Optional. The throttling keywords.
Note
|
with_options |
Required. Used to control the concurrency of throttling and specify the throttling statistics granularity at the rule level or the Format SQLID statement level. Currently, only the MAX_CONCURRENCY parameter is supported, which specifies the maximum concurrency of SQL statements that match the throttling rule. |
Examples
Execute the following command to throttle by keywords:
obclient> CREATE CONCURRENT_LIMITING_RULE IF NOT EXISTS `sql1_keywords_ccl_rule`
ON *.* TO '%'@'%' FOR SELECT
FILTER BY KEYWORD('table1', 'table2', 'c1') WITH MAX_CONCURRENCY 100;