説明
このステートメントは、OceanBaseデータベースV4.3.5 BP3バージョンから導入されました。
説明
このステートメントは、特定のSQLの同時実行数を制限するために、制限範囲を指定してレートリミットルールを作成します。
権限要件
CREATE CONCURRENT_LIMITING_RULE ステートメントを実行するには、現在のユーザーがCREATE権限を持っている必要があります。OceanBaseデータベースの権限の詳細については、MySQLモードの権限分類を参照してください。
構文
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]
パラメータの説明
| パラメータ | 説明 |
|---|---|
ccl_rule_name |
必須。ルールの名前を表します。
説明名前とSQLキーワードとの競合を避けるため、ルール名の前後にそれぞれアポストロフィ(`)を付けることを推奨します。 |
database.table |
必須。データベースとテーブルの名前を表します。アスタリスク(*)を使用して任意のマッチングを示すことができます。
説明名前とSQLキーワードとの競合を避けるため、ルール名の前後にそれぞれアポストロフィ(`)を付けることを推奨します。 |
<usename>@<host> |
必須。アカウント名を表します。usernameは*を使用してすべてのユーザーを表し、Host部分はパーセント記号(%)を使用して任意のマッチングを表すことができます。 |
ALL|UPDATE \| SELECT \| INSERT\| DELETE |
必須。SQL文の種類を表します。現在、ALL、UPDATE、SELECT、INSERT、DELETEの種類がサポートされています。
説明各ルールでは、1種類のSQL文のみを指定できます。 |
[ filter_options ] |
オプション。制限キーワードを表します。
説明
|
with_options |
必須。制限の並列度を制御し、制限統計の粒度がルールレベルか、あるいはFormat SQLID文レベルかを指定します。現在、このパラメータはMAX_CONCURRENCYのみサポートされており、この制限ルールに一致するSQL文の最大並列度を表します。 |
例
以下のコマンドを実行して、キーワードによるリミットを設定します。
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;