SQL 限流
更新时间:2026-03-06
概述
DBSC 提供 SQL 限流功能,您可以通过创建 SQL 限流任务,对 SQL 类型、最大并发数和 SQL 关键字等设置来控制数据库请求的访问量和并发量,从而达到访问的可用性和稳定性。我们为 SQL 限流提供丰富的管控能力,支持创建多条限流任务,各个限流任务不会发生冲突和影响,同时支持查看、关闭、修改和删除SQL 限流任务。
使用场景
- 流量限制: 高并发访问,某类SQL并发量急剧上升,通过SQL限流限制。
- 安全防护: 通过限制某类SQL的并发数,防止恶意攻击或者DoS攻击,保护数据库的安全性。
版本限制
- 5.7.26-5.0.2.2版本支持;
- 5.7.38、5.7.44所有版本支持;
- 8.0.32-4.0.0.5之后版本开始支持;
-
8.0.41所有版本支持;
说明:
- 如果当前实例不支持SQL限流功能,可能由于版本过低,您可以通过升级数据库大版本、小版本后使用。具体操作可参考升级大版本、升级小版本。
使用说明
- 自动SQL限流的限流模式是通过关键词限流:支持的SQL类型有SELECT、UPDATE、DELETE、INSERT、REPLACE。
- 当自动限流规则创建后,应用端使用了包含所有关键词的SQL语句时,会产生报错。
操作步骤
创建 SQL 限流任务
- 登录云数据库 RDS 控制台。
- 在 RDS 控制台,选择一个 MySQL 主实例,点击实例名称,进入实例详情。
- 在“云数据库 RDS 实例”详情页面,点击 诊断优化 > 会话管理 ,展示模块信息。
- 点击 SQL 限流 > 创建任务,选择对应的SQL类型、最大并发数、SQL关键词,创建SQL限流任务。
开启、修改和删除 SQL 限流任务
- 查看在 SQL 限流任务列表。
- 可以对每个SQL限流任务进行开启、修改、删除和关闭操作。
参数说明如下表所示:
| 参数 | 说明 |
|---|---|
| SQL 类型 | 包括SELECT、INSERT、UPDATE、DELETE、REPLACE。 |
| 最大并发数 | SQL 最大的并发数,当包含关键词的 SQL 达到最大并发数时会触发 SQL 限流策略。 允许设置的最小值是1,最大值1000000。 |
| SQL 关键词 | 需要限流的 SQL 关键词,多个关键词以英文逗号“,”分割,最多256个字符 系统会自动拆分关键词,多个关键词之间的关系为“逻辑与”,不区分先后顺序。 |
说明:
- 由于 SQL 关键词按照字符串匹配,且不区分关键词的顺序及是否指代库名表名,对于需要精确匹配的SQL,建议输入更多的关键字来实现精准限流。
- 当实例达到限流任务设置的最大并发数时,含有关键字且被匹配到的SQL将被拒绝执行。
- 创建 SQL 限流任务后并不是立即生效,需要对任务进行开启操作后生效。
