更新时间:2024-09-06 GMT+08:00
分享

设置SQL限流规则

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

功能限制

  • 新增的SQL限流规则仅对当前实例生效。
  • 当SQL语句匹配多条限流规则时,优先生效最新添加的规则,之前的规则不再生效。
  • 在添加SQL限流规则之前,已经开始执行的SQL语句,不会被记入并发数。
  • 如果复制时延过长,只读实例新增或删除限流规则时,不会立刻生效。
  • 建议内核小版本升级至最新版本。
  • 当设置过多限流规则时,对性能有一定影响,使用后请删除多余的规则。
  • 以下场景不受SQL限流的限制:
    • 系统表不限制。
    • 不涉及数据查询的不限制,例如:SELECT sleep(xxx);
    • root账户不限制。
    • 对存储过程,触发器,函数内的SQL语句不限制。

操作步骤

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

    图1 新建SQL限流规则
    表1 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。

    最大并发数

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

    kill满足规则的已有会话

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

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

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

相关操作

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

图2 删除SQL限流

相关文档