Note
For V4.3.X versions, this statement is available starting from OceanBase Database V4.3.5 BP3.
For V4.4.X versions, this statement is available starting from OceanBase Database V4.4.1.
Purpose
This statement is used to create a throttling rule and specify 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 OceanBase Database privileges, see Privilege classification in MySQL-compatible 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 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 name.
NoteTo avoid conflicts with SQL keywords, we recommend that you add backticks (`) before and after the rule name. |
<username>@<host> |
Required. The name of the account. The username can be specified as * to match all users. The host can be specified as % to match any host. |
ALL|UPDATE \| SELECT \| INSERT\| DELETE |
Required. The type of the SQL statement. The following types are supported: 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. The concurrency limit and the throttling statistics granularity. Currently, only the MAX_CONCURRENCY parameter is supported. It specifies the maximum concurrency of SQL statements that match the throttling rule. |
Examples
Execute the following command to throttle SQL statements based on 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;