华为云云数据库rds设置SQL限流规则_云淘科技

操作场景

通过新建SQL限流规则设置SQL语句类型、关键字、最大并发数等条件,在您的业务运行过程中,RDS服务会自动匹配SQL语句,当SQL语句超过最大并发数时会被拒绝执行,可以解决由于SQL并发数过高导致实例不稳定的问题。

可能引起SQL并发过高的场景主要有:

业务流量突增:出现缓存穿透、异常调用等情况,导致某类SQL并发数急剧上升。
慢查询堆积:未创建索引的SQL被大量调用,出现大量慢SQL,影响正常业务。

支持的版本限制

SQL限流功能支持的RDS for MySQL的版本请参见表1。

表1 SQL限流支持的版本

版本

主实例

只读实例

只读实例单独设置规则

5.6

≥ 5.6.50-3

≥ 5.6.51-6

暂不支持

5.7

≥ 5.7.31-4

≥ 5.7.37-1

≥ 5.7.38-221000

8.0

≥ 8.0.25-1

≥ 8.0.25-1

暂不支持

表2中的RDS for MySQL实例,使用SQL限流功能对root用户的请求不生效。

表2 root用户请求不受SQL限流限制的版本

版本

主实例

5.6

≥ 5.6.51-4

5.7

≥ 5.7.33-1

8.0

≥ 8.0.25-1

建议RDS for MySQL小版本升级内核到最新版本,SQL限流体验更佳,请参见升级内核小版本。

功能限制

当SQL语句匹配多条限流规则时,优先生效最新添加的规则,之前的规则不再生效。
在添加SQL限流规则之前,已经开始执行的SQL语句,不会被记入并发数。
若复制时延过大,针对只读实例,新增或删除限流规则不会立刻生效。
系统表不受SQL限流设置。
不涉及数据查询的SQL不受限流设置,例如:select sleep(xxx);
存储过程、触发器、函数内的SQL不受限流设置。

操作步骤

登录管理控制台。
单击管理控制台左上角的,选择区域和项目。
单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“基本信息”页签。
在左侧导航栏选择“智能DBA助手 > 历史诊断”。
选择“全量SQL > SQL限流”。
单击“新建SQL限流规则”,配置SQL限流规则参数,参数说明请参见表3。

图1 新建SQL限流规则

表3 SQL限流规则参数

参数

说明

SQL类型

支持选择三种类型:SELECT、UPDATE、DELETE。

关键字

最多支持128个关键字,不区分大小写。支持以下两种方式输入关键字。

直接输入关键字:例如关键字是”select~a”,含义为:select以及a为该并发控制所包含的两个关键字,~为关键字间隔符,也就是说如果执行SQL语句中包含select与a两个关键字,那么命中此条并发控制规则。
原始SQL生成关键字:输入原始SQL再单击“生成关键字”,生成的关键字仅供参考,请谨慎使用。

关键字根据顺序匹配SQL语句。例如:a~and~b只会匹配xxx a>1 and b>2,而不会匹配xxx b>2 and a>1。

单个关键字首尾的空白字符会被忽略,包括’ ‘、’
‘、’\r’、’ ‘等。

最大并发数

输入最大并发数,与关键字匹配的SQL语句如果超过最大并发数会被拒绝执行。取值范围为0~1000000000。

kill满足规则的已有会话

勾选此选项后,不会结束root用户下的连接会话。

确认无误后,单击“确定”。
打开,开启SQL限流开关。

SQL限流开关打开后,限流规则才能生效。

后续操作

如果不需要此条SQL限流规则,在SQL限流列表的操作列单击“删除”并“确定”。

图2 删除SQL限流

常见问题

排查RDS for MySQL CPU使用率高的原因和解决方法
RDS for MySQL数据库内存使用率过高怎么处理

RDS for MySQL慢SQL问题定位

父主题: 智能DBA

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家