説明
V4.3.X系では、このステートメントはOceanBaseデータベースV4.3.5 BP3バージョンから導入されました。
V4.4.X系では、このステートメントはOceanBaseデータベースV4.4.1バージョンから導入されました。
説明
このステートメントは、レート制限ルールを作成し、特定の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;