华为云云数据库rds设置SQL限流规则_云淘科技
操作场景
通过新建SQL限流规则设置SQL语句类型、关键字、最大并发数等条件,在您的业务运行过程中,RDS服务会自动匹配SQL语句,当SQL语句超过最大并发数时会被拒绝执行,可以解决由于SQL并发数过高导致实例不稳定的问题。
可能引起SQL并发过高的场景主要有:
业务流量突增:出现缓存穿透、异常调用等情况,导致某类SQL并发数急剧上升。
慢查询堆积:未创建索引的SQL被大量调用,出现大量慢SQL,影响正常业务。
支持的版本限制
SQL限流功能支持的RDS for MySQL的版本请参见表1。
版本 |
主实例 |
只读实例 |
只读实例单独设置规则 |
---|---|---|---|
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用户的请求不生效。
版本 |
主实例 |
---|---|
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限流规则
参数项 |
说明 |
---|---|
SQL类型 |
支持选择三种类型:SELECT、UPDATE、DELETE。 |
关键字 |
最多支持128个关键字,不区分大小写。支持以下两种方式输入关键字。 直接输入关键字:例如关键字是”select~a”,含义为:select以及a为该并发控制所包含的两个关键字,~为关键字间隔符,也就是说如果执行SQL语句中包含select与a两个关键字,那么命中此条并发控制规则。 关键字根据顺序匹配SQL语句。例如:a~and~b只会匹配xxx a>1 and b>2,而不会匹配xxx b>2 and a>1。 单个关键字首尾的空白字符会被忽略,包括’ ‘、’ |
最大并发数 |
输入最大并发数,与关键字匹配的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)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家