You need to enable JavaScript to run this app.
文档中心
数据库工作台

数据库工作台

复制全文
下载 pdf
会话管理
SQL 限流管理
复制全文
下载 pdf
SQL 限流管理
数据库工作台 DBW 提供 SQL 限流功能。您可以通过该功能控制数据库的请求访问量和 SQL 并发量,从而保障服务的可用性。本文介绍如何在 DBW 控制台管理 SQL 限流任务,例如开启 SQL 限流功能、创建或删除 SQL 限流任务等。
前提条件
  • 已创建云数据库 MySQL 版实例和账号,且实例状态处于运行中。详细操作,请参见创建实例账号
说明
当实例状态为创建中、恢复中、导入中、错误、已删除、关停、等待支付、计费关停中、计费恢复中、计费回收中或重建中时,不支持使用该功能。
支持的版本
  • MySQL 5.7 版本,内核小版本为 MySQL 5.7.32_20231015 及以上。
  • MySQL 8.0 版本,内核小版本为 MySQL 8.0.32_20231015 及以上。
  • MySQL 8.4 版本,内核小版本为 MySQL 8.4.7_20260415 及以上。
说明
您可通过查看实例信息查看实例的内核小版本。如您实例的内核小版本未在受支持的内核小版本范围内,您可手动升级实例内核小版本
限流提示
SQL 限流任务支持通过关键字限流,即通过匹配 SQL 语句中的关键字控制 SQL 类型的并发数。为云数据库 MySQL 版实例创建 SQL 限流任务后,当限流任务生效时,DBW 将根据 MySQL 数据库版本,给出限流提示信息,如下表所示。
数据库版本
错误码
限流提示信息
MySQL 5.7
3245
ccl refuse to execute query
  • MySQL 8.0
  • MySQL 8.4
4169
ccl refuse to execute query
注意事项
  • 限流任务总数上限为 128 条,该配额包含手动创建的 SQL 限流任务与自动限流任务。
  • 手动创建 SQL 限流任务的注意事项
  • SQL 限流是应急措施,建议您在完成限流后及时关闭限流任务。
  • 删除 SQL 限流任务后,将立即关闭并删除所选的限流任务,请谨慎操作。
  • 在使用 SQL 限流管理功能期间,请勿操作变更实例的相关配置,否则会导致无法正常对实例进行 SQL 限流管理。
功能对比
维度
SQL 限流
自动限流
触发方式
手动配置
系统自动检测 + 触发
依赖条件
自行判断问题 SQL 是什么
依赖实时会话快照和事务与锁
响应速度
配置后立即生效
检测到异常后秒级~分钟级响应
适用场景
已知风险 SQL(如上线前防护)
未知突发流量、雪崩、DoS 攻击等
创建限流任务
创建 SQL 限流任务
创建自动限流任务
  1. 登录 DBW 控制台
  1. 在左侧导航栏,选择运维管理 > 观测诊断
  1. 在顶部菜单栏,选择地域。
  1. 会话管理页签,单击 SQL 限流
  • 会话管理页签左上方,可以切换目标实例。
  1. SQL 限流页签,单击创建任务
  1. SQL 限流任务对话框,设置以下参数信息。
  • 参数
    说明
    SQL 类型
    从下拉列表中选择需要限流的 SQL 类型,取值包括 SELECTUPDATEDELETEINSERTREPLACE
    限流结束方式
    按需选择限流结束的方式,支持以下两种方式:
    • 自动:限流任务创建完成后会按照设定的限流时长运行。等达到限流时长,系统会自动关闭限流任务。
    • 手动:限流任务创建完成后会一直运行,直到您手动将其关闭。
    限流时长
    按需设置限流任务的生效时长,取值范围为 [1, 99999],单位为:min。
    说明
    • 限流结束方式选择为自动时,支持设置限流时长
    • 在任务达到限流时长后,将自动关闭限流任务,也支持手动提前关闭。
    最大并发数
    设置 SQL 限流任务的最大并发数,表示同时执行的 SQL 语句达到最大并发数时将触发 SQL 限流。如果 SQL 限流设置为 0 时,表示限制所选 SQL 类型的所有 SQL 执行。取值范围为 [0, 99999]。
    限流对象
    SQL 关键词
    系统支持通过提取 SQL 语句中的核心特征(包括操作指令、表名、字段名等)来生成限流规则。您只需输入原始 SQL,系统将自动将其拆解为一系列匹配特征码。
    • 生成逻辑
    • 自动拆解:系统会忽略空格、换行等空白字符,将 SQL 语句按语法单元拆分,并使用 ~ 符号连接。
    • 示例:
    • 输入:select a,b from t where a=2
    • 生成规则:select~a~b~from~t~where~a
    • 含义:该规则代表必须按顺序包含 selectabfrom 等所有片段。
    • 匹配机制
    • 严格有序匹配:本系统的特征码匹配是严格区分顺序的。
    • 匹配成功:执行的 SQL 为 select * from test where a > 1 and b > 1(顺序与规则一致)。
    • 匹配失败:执行的 SQL 为 select * from test where b > 1 and a > 1(虽然包含相同字段,但 ab 的出现顺序与规则不符,将不会被限流)。
    • 字符限制:生成的特征码长度不能超过 512 字符。如超长,建议减少非必要的字段(如去掉 select 后的具体列名,仅保留 select~from~table)。
    • 特殊符号:生成的规则中不允许包含英文逗号 (,)、单引号 (') 和分号 (;)。
    • 未生成校验:如果您未点击“生成和校验”,系统将把您输入的整句文本作为精确字符串进行匹配。
    SQL 模板
    将 SQL 中的具体参数抽象为占位符(?),生成标准化模板(如 SELECT * FROM orders WHERE user_id = ?)。
    按需设置需要限流的 SQL 语句,然后单击生成 SQL 模板,系统将自动生成 SQL 模板。
    例如,当您想对 SELECT * FROM users WHERE id = 1001; 语句做限流,在输入框中填入该语句,单击生成 SQL 模板,系统将自动将 SQL 语句转换为 SELECT * FROM users WHERE id = ? 并生效。表示所有 id=? 的查询都会被限流,无论 1001 还是 2002 或者是其他值,都将被限流。
    说明
    当前属于邀测阶段,如需使用,请提交工单联系技术支持。
    SQL 全文
    按需设置需要限流的 SQL 语句,表示完全匹配整条 SQL 语句的原始文本(包括大小写、空格、参数值等),完全精确匹配。
    例如,您输入的 SQL 全文是 SELECT * FROM orders WHERE user_id = '12345' AND status = 'pending';,那么 SQL 限流任务将只限制该语句,user_id = '67890' 语句不受影响。
    说明
    当前属于邀测阶段,如需使用,请提交工单联系技术支持。
  1. 单击确定
查看 SQL 限流任务
  1. 登录 DBW 控制台
  1. 在左侧导航栏,选择运维管理 > 观测诊断
  1. 在顶部菜单栏,选择地域。
  1. 会话管理页签,单击 SQL 限流
  1. 会话管理页签左上方,可以切换目标实例。
  1. SQL 限流区域,您可以查看 SQL 限流任务的任务 ID任务状态SQL 类型限流对象SQL 关键词开始时间剩余时间结束时间拒绝数最大并发数等。
  • 任务状态包括运行中已完成已终止删除失败终止失败
删除 SQL 限流任务
说明
删除后,将立即关闭并删除所选的限流任务,请谨慎操作。
  1. 登录 DBW 控制台
  1. 在左侧导航栏,选择运维管理 > 观测诊断
  1. 在顶部菜单栏,选择地域。
  1. 会话管理页签,单击 SQL 限流
  • 会话管理页签左上方,可以切换目标实例。
  1. SQL 限流区域,在目标 SQL 限流任务的操作列,选择 ... > 删除
  1. 确定删除吗? 对话框,单击确定
最近更新时间:2026.09.01 14:01:58
这个页面对您有帮助吗?
有用
有用
无用
无用