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

数据库工作台

复制全文
下载 pdf
会话管理
SQL 限流管理
复制全文
下载 pdf
SQL 限流管理
数据库工作台 DBW 提供 SQL 限流功能。您可以通过该功能控制数据库的请求访问量和 SQL 并发量,从而保障服务的可用性。本文介绍如何在 DBW 控制台管理 SQL 限流任务。​
前提条件​
  • 已创建云数据库 veDB MySQL 版实例和账号,且实例状态处于运行中。详细操作,请参见创建实例和创建账号。​
限流提示​
SQL 限流任务支持通过关键字限流,即通过匹配 SQL 语句中的关键字控制 SQL 类型的并发数。为云数据库 veDB MySQL 版实例创建 SQL 限流任务后,当限流任务生效时,DBW 将根据 MySQL 数据库版本给出限流提示信息,如下表所示。​
​
数据库版本 ​
错误码​
限流提示信息​
MySQL 5.7​
13030​
ccl refuse to execute query​
MySQL 8.0​
8032​
ccl refuse to execute query​
​
注意事项​
  • SQL 限流是应急措施,建议您在完成限流后及时关闭限流任务。​
  • 在限流期间,请勿变更实例的相关配置,否则会导致无法正常对实例进行 SQL 限流管理。​
  • 最多可创建 128 条 SQL 限流任务。单条规则中,关键字的个数上限为 128 个,且所有关键字的总长度不能超过 512 字节。​
  • SQL 关键字数量与总长度的阈值最高均可调整至 65535 字节,但不建议将其设置过大。​
  • 由于过高的阈值会显著增加限流匹配时的内存与 CPU 的资源,进而影响数据库的整体性能与稳定性。建议您根据实际业务需求设置合理的规则。如需调整上述阈值,请提交工单联系技术支持,结合实例规格与业务场景进行综合评估。​
  • SQL 关键字限流基于逐字匹配机制,性能影响与字符匹配量呈正相关。SQL 文本越长,可能与规则关键字的前缀重合度越高(即使最终不匹配),因此系统逐字比对的耗时就越长,对性能的影响也越大。​
  • 在遇到前缀和限流关键字高度相似的 SQL 场景时,可能会产生高达 97% 的额外性能开销。​
  • SQL 关键字限流功能依赖特定的数据库内核版本,不同版本的能力可能存在差异。关于实例内核版本的详细信息,参见内核版本发布说明。​
  • 存储过程内的 SQL 不受限流规则限制。​
  • 删除 SQL 限流任务,将立即关闭并删除所选的限流任务,请谨慎操作。​
功能对比​
​
维度​
SQL 限流​
自动限流​
触发方式​
手动配置​
系统自动检测 + 触发​
依赖条件​
自行判断问题 SQL 是什么​
依赖实时会话快照和事务与锁​
响应速度​
配置后立即生效​
检测到异常后秒级~分钟级响应​
适用场景​
已知风险 SQL(如上线前防护)​
未知突发流量、雪崩、DoS 攻击等​
​
创建限流任务​
​
创建 SQL 限流任务
创建自动限流任务
​
  1. 登录 DBW 控制台。​
  1. 在左侧导航栏,选择运维管理 > 观测诊断。​
  1. 在顶部菜单栏,选择地域。​
  1. 在会话管理页签,单击 SQL 限流。​
  1. 在页面右上角的下拉列表中,选择目标数据库类型即云数据库 veDB MySQL 版。​
  1. 在页面左上角下拉列表中,选择目标实例。​
  1. 在 SQL 限流区域,单击创建任务。​
  1. 在 SQL 限流任务对话框,设置以下参数信息。​
  • ​
    参数​
    ​
    说明​
    SQL 类型​
    ​
    从下拉列表中选择需要限流的 SQL 类型,取值包括 SELECT、UPDATE、DELETE、INSERT 和 REPLACE。​
    限流结束方式​
    ​
    按需选择限流结束的方式,支持以下两种方式:​
    • 自动:限流任务创建完成后会按照设定的限流时长运行。等达到限流时长,系统会自动关闭限流任务。​
    • 手动:限流任务创建完成后会一直运行,直到您手动将其关闭。​
    限流时长​
    ​
    按需设置限流任务的生效时长,取值范围为 [1, 99999],单位为:min。​
    说明​
    • 当限流结束方式选择为自动时,支持设置限流时长。​
    • 在任务达到限流时长后,将自动关闭限流任务,也支持手动提前关闭。​
    最大并发数​
    ​
    设置 SQL 限流任务的最大并发数,表示同时执行的 SQL 语句达到最大并发数时将触发 SQL 限流。如果 SQL 限流设置为 0 时,表示限制所选 SQL 类型的所有 SQL 执行。取值范围为 0~99999。​
    限流对象​
    ​
    SQL 关键词​
    ​
    按需输入需要限流的 SQL 语句,单击关键字生成和校验,系统将自动拆分关键词,并以 ~ 为分隔符生成限流规则。示例如下:​
    • 示例一:指定字段的查询。​
    输入 SQL:SELECT a, b, c FROM t WHERE a = ? AND b = 2 AND c = ?​
    生成规则:select~a~b~c~from~t~where~a~and~b~2~and~c​
    执行的 SQL 语句中按顺序包含 select、a、b、c、from、t、where、a、and、b、2、and、c 这些关键字时,命中此条限流规则。​
    • 示例二:带通配符的查询。​
    输入 SQL:SELECT * FROM test WHERE name = das​
    生成规则:select~from~test~where~name~das​
    执行的 SQL 语句中按顺序包含 select、from、test、where、name、das 这六个关键字时,命中此条限流规则。​
    说明​
    • 有序匹配:关键词按顺序匹配 SQL 语句。例如规则 select~from~test~where~a~b 能匹配 SELECT * FROM test WHERE a > 1 AND b > 1,但不会匹配 SELECT * FROM test WHERE b > 1 AND a > 1(字段顺序不同)。​
    • 空白字符忽略:关键字首尾的空白字符会被自动忽略,包括空格、换行符(\n)、回车符(\r)、制表符(\t)等。​
    • 未生成校验:如果未单击关键字生成和校验,系统将以输入的整句文本作为规则进行限流控制。​
    • 禁用字符:关键词中不允许包含英文逗号(,)、单引号(')和分号(;)。​
    • 长度限制:关键词总长度不能超过 65535 个字符,建议仅保留必要的关键字,避免规则过大影响性能。​
    ​
    SQL 模板​
    将 SQL 中的具体参数抽象为占位符(如 ?),生成标准化模板(如 SELECT * FROM orders WHERE user_id = ?)。​
    按需设置需要限流的 SQL 语句,然后单击生成 SQL 模板,系统将自动拆分,并以 ? 为分隔符。​
    例如,当您想对 SELECT * FROM users WHERE id = 1001; 语句做限流,在输入框中填入该语句,单击生成 SQL 模板,系统将自动将 SQL 语句转换为 SELECT * FROM users WHERE id = ? 并生效。表示所有 id=? 的查询都会被限流,无论 ? 是 1001 还是 2002 或者是其他值,都将被限流。​
    ​
  1. 单击确定。​
  1. ​
​
查看 SQL 限流任务​
  1. 登录 DBW 控制台。​
  1. 在左侧导航栏,选择运维管理 > 观测诊断。​
  1. 在顶部菜单栏,选择地域。​
  1. 在会话管理页签,单击 SQL 限流。​
  1. 在页面右上角的下拉列表中,选择目标数据库类型即云数据库 veDB MySQL 版。​
  1. 在页面左上角下拉列表中,选择目标实例。​
  • 在 SQL 限流区域,您可以查看 SQL 限流任务的任务 ID、任务状态、SQL 类型、限流对象、SQL 关键词、开始时间、剩余时间、结束时间、拒绝数和最大并发数等。​
  • 任务状态包括运行中、已完成、已终止、删除失败和终止失败。​
删除 SQL 限流​
说明​
删除时将立即关闭并删除所选的限流任务,请谨慎操作。​
  1. 登录 DBW 控制台。​
  1. 在左侧导航栏,选择运维管理 > 观测诊断。​
  1. 在顶部菜单栏,选择地域。​
  1. 在会话管理页签,单击 SQL 限流。​
  1. 在页面右上角的下拉列表中,选择目标数据库类型即云数据库 veDB MySQL 版。​
  1. 在页面左上角下拉列表中,选择目标实例。​
  1. 在 SQL 限流区域,在目标 SQL 限流任务的操作列,选择 ... > 删除。​
  1. 在确定删除吗? 对话框,单击确定。​
​
最近更新时间:2026.09.01 14:02:00
这个页面对您有帮助吗?
有用
有用
无用
无用