新建sql限流规则-j9九游会登录
操作场景
sql限流是指通过设置语句类型、关键字等匹配sql语句,当所匹配的sql语句超过设置的最大并发数时,数据库实例会拒绝执行此sql。从而解决sql并发数过高导致的实例不稳定问题。
可能引起sql并发过高的场景有:
- 业务流量突增:出现缓存穿透、异常调用等情况,导致某类sql并发数急剧上升。
- 慢查询堆积:未创建索引的sql被大量调用,出现大量慢sql,影响正常业务。
版本约束限制
sql限流功能对于不同实例类型的版本约束请参见表1。实例版本的查询方法请参见如何查看云数据库rds实例的版本号。
|
大版本 |
主实例小版本 |
只读实例小版本 |
只读实例单独设置规则 |
|---|---|---|---|
|
8.0 |
≥ 8.0.25.1 |
≥ 8.0.25.1 |
暂不支持 |
|
5.7 |
≥ 5.7.31.4 |
≥ 5.7.37.1 |
≥ 5.7.38.221000 |
|
5.6 |
≥ 5.6.50.3 |
≥ 5.6.51.6 |
暂不支持 |
sql限流功能对于内置用户和root用户请求的版本约束请参见表2。
|
大版本 |
小版本 |
内置用户 |
root用户 |
|---|---|---|---|
|
8.0 |
≥ 8.0.28.231000 |
不受限 |
受限 |
|
8.0.25.1 ≤ 版本 < 8.0.28.231000 |
不受限 |
不受限 |
|
|
< 8.0.25.1 |
受限 |
受限 |
|
|
5.7 |
≥ 5.7.43.231000 |
不受限 |
受限 |
|
5.7.33.1 ≤ 版本 < 5.7.43.231000 |
不受限 |
不受限 |
|
|
< 5.7.33.1 |
受限 |
受限 |
|
|
5.6 |
≥ 5.6.51.4 |
不受限 |
不受限 |
|
< 5.6.51.4 |
受限 |
受限 |
大于等于5.7.43.231000和8.0.28.231000版本的实例,root用户会被限流,如果需要对root用户不限流,请处理。
建议rds for mysql小版本升级内核到最新版本,sql限流体验更佳,请参见升级rds for mysql内核小版本。
功能限制
- 最多可配置100条限流规则。
- sql限流功能当前仅支持select、update、delete、insert关键字。
- mysql5.7(>= 5.7.44.240100)或mysql8.0(>= 8.0.32.240100)支持“insert”类型限流规则,如需使用该功能,请申请。
- 当sql语句匹配多条限流规则时,优先生效最新添加的规则,之前的规则不再生效。
- 在添加sql限流规则之前,已经开始执行的sql语句,不会被记入并发数。
- 若复制时延过大,针对只读实例,新增或删除限流规则不会立刻生效。
- 系统表不受sql限流的限制。
- 不涉及数据查询的sql不受限流的限制,例如:select sleep(***);
- 暂不支持对存储过程、触发器、函数内的sql做限流设置。
- 您可以在das执行如下sql查看sql限流规则的执行情况:select * from information_schema.rds_sql_filter_info;
- 当设置过多限流规则时,对性能有一定影响,使用后请删除多余的规则。
- sql限流规则不支持约束系统库。
- 5.6.51.4以下内核版本、5.7.33.5以下内核版本、以及8.0.25.220700以下内核版本的实例限流规则不区分用户类型,配置限流规则时建议包含表名,单独配置select关键字会影响功能使用。
操作步骤
- 单击管理控制台左上角的
,选择区域。 - 单击页面左上角的
,选择“数据库 > 云数据库 rds”,进入rds信息页面。 - 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
- 在左侧导航栏选择“智能dba助手”下的“sql分析与优化”。
- 选择“sql限流”。
- 打开
,开启sql限流开关。sql限流开关打开后,限流规则才能生效。 - 单击“新建sql限流规则”,配置sql限流规则参数,参数说明请参见表3。
图1 新建sql限流规则(直接输入关键字)
图2 新建sql限流规则(sql语句生成关键字)
表3 sql限流规则参数 参数项
说明
sql类型
支持选择四种类型:select、update、delete、insert。
关键字生成方式
最多支持128个关键字,不区分大小写。支持以下两种方式输入关键字。
- 直接输入关键字:例如关键字是“select~a”,含义为:select以及a为该并发控制所包含的两个关键字,~为关键字间隔符,也就是说如果执行sql语句中包含select与a两个关键字,那么命中此条并发控制规则。
- 原始sql语句生成关键字:输入原始sql再单击“生成关键字”,生成的关键字仅供参考,请谨慎使用。
关键字根据顺序匹配sql语句。例如:a~and~b只会匹配*** a>1 and b>2,而不会匹配*** b>2 and a>1。
单个关键字首尾的空白字符会被忽略,包括' '、'\n'、'\r'、'\t'等。
最大并发数
输入最大并发数,与关键字匹配的sql语句如果超过最大并发数会被拒绝执行。取值范围为0~1000000000。
kill满足规则的已有会话
勾选此选项后,会结束所有受sql限流控制的账户所产生的会话。
root用户不受sql限流限制的版本详见版本约束限制。
- 确认无误后,单击“确定”。
后续操作
如果不需要此条sql限流规则,在sql限流列表的操作列单击“删除”并“确定”。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨