数据管理服务 DAS
数据管理服务 DAS
- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 权限管理
- 登录数据库实例
- MySQL
- RDS for SQL Server
- PostgreSQL
- RDS for MariaDB
- GaussDB
- TaurusDB
- GeminiDB Cassandra
- GaussDB(DWS)(即将下线)
- DDS
- DDM
- 审计
- 事件监控
- 最佳实践
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
API(公测中)
- 获取API版本
-
云DBA
- 注册数据库用户
- 修改数据库用户
- 删除数据库用户
- 查询云DBA配额
- 查询数据库用户信息
- 查询数据库用户列表
- 查杀会话
- 查询SQL执行计划(GET请求)
- 查询SQL执行计划(POST请求)
- 查询元数据锁列表
- 查询实例会话列表
- 查询InnoDB锁等待列表
- 开启/关闭全量SQL、慢SQL开关
- 查询全量SQL和慢SQL的开关状态
- 导出慢SQL数据
- 导出全量SQL
- 查看SQL限流开关状态
- 设置SQL限流开关状态
- 查询SQL限流规则列表
- 根据原始SQL生成SQL限流关键字
- 创建SQL限流规则
- 删除SQL限流规则
- 查询SQL限流任务
- 导出TopSQL模板列表
- 导出SQL执行耗时区间数据
- 导出慢SQL模板列表
- 获取DAS云DBA实例列表
- 设置共享链接
- 删除共享链接
- 执行SQL诊断
- 获取诊断结果
- 创建实例健康诊断任务
- 查询实例健康诊断报告列表
- 获取实例健康诊断报告内容
- 同步实例列表
- API(不再推广)
- 权限策略和授权项
- 附录
- SDK参考
-
常见问题
- 产品咨询
-
连接管理
- 权限不足导致数据库实例连接失败怎么办
- RDS for MySQL实例连接失败怎么办
- ECS自建库(MySQL)连接失败怎么办
- RDS for SQL Server实例连接失败怎么办
- ECS自建库(Microsoft SQL Server)连接失败怎么办
- RDS for PostgreSQL实例连接失败怎么办
- ECS自建库(PostgreSQL)连接失败怎么办
- DDS实例连接失败怎么办
- TaurusDB实例连接失败怎么办
- GaussDB实例连接失败怎么办
- DDM实例连接失败怎么办
- 如何查看并放通ECS实例安全组规则
- 如何查看并放通防火墙
- 共享连接失败怎么办
- 多次单击登录无法跳转至开发工具页面怎么办
- 使用类
- 资源冻结/释放/删除/退订
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
SQL限流
针对新上业务不能及时发包优化的SQL和突发流量导致CPU等资源100%瓶颈的场景,SQL限流功能通过控制既定SQL规则的并发度协助业务侧及时流控,保证核心业务的稳定运行。
使用须知
- SQL限流旨在解决用户某类突发的并发过高的SQL导致TaurusDB实例不稳定场景。
- SQL限流对TaurusDB的内核版本支持如下:
- >= 2.0.28.15且< 2.0.28.40
- >= 2.0.29.1
- >= 2.0.54.240600支持“INSERT”类型限流规则
- 单个限流规则最大支持128个关键字,不能是单个反斜杠(\) 或单个空字符(' ')。
- 关键字首尾的空格和特殊空白字符(如'\t'、'\r'、'\n')都会被忽略掉。
- 限流规则不能以“~”结尾。
- 限流规则对关键字有顺序要求,只会按顺序匹配。a~and~b只会匹配xxx a>1 and b>2,而不会匹配xxx b>2 and a>1。
- 当SQL语句匹配多条限流规则时,优先生效最新添加的规则,之前的规则将不再生效。
- 添加SQL限流规则后,已经执行中的SQL不会被新添加的规则限制,只有新执行的SQL才会进行规则匹配。
- 若主节点和只读节点设置了不一样的限流规则,实例主节点和只读节点倒换之后,新的主节点规则和原来的只读节点一样,新的只读节点规则和原来的主节点一样。
- 单个SQL类型(SELECT、UPDATE、DELETE、INSERT)的所有规则和对应的并发数加起来长度不能超过4000bytes,单条规则长度不能超过1000bytes。
- 当限流规则数量较多时,SELECT/UPDATE/DELETE/INSERT语句会有小幅度的性能劣化。
- 限流SQL的匹配规则为前缀匹配。例如:限流规则为“SELECT~COUNT~t1”, SQL语句“SELECT COUNT(*) FROM t1”和“SELECT COUNT(*) FROM t1 LIMIT 1”都会被拦截。
- 限流触发后业务侧会收到执行报错,报错信息为“ERROR 1317 (70100): Query execution was interrupted”。
- 以下场景不受SQL限流的限制:
- 系统表不限制。
- 不涉及数据查询的语句不限制,如select sleep(xxx)。
- root账号在内核版本 < 2.0.45.230900不受SQL限流限制。
- 查询缓存(Query Cache)打开场景下,如果SQL已经缓存,SQL限流不生效。
操作步骤
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。
- 单击页面左上角的
,选择“数据库 > 数据管理服务 DAS”,进入数据管理服务页面。
- 在左侧的导航栏中单击“DBA智能运维 > 实例列表”页签,进入DBA智能运维实例列表页面。
您也可以在产品概览页面,单击“进入DBA智能运维”,进入DBA智能运维实例列表页面。
- 在实例列表页面右上角,按照引擎、实例名称或者实例IP筛选实例。
图1 筛选实例
- 选择目标实例,单击“详情”,进入DBA智能运维总览页面。
- 在“SQL”页签下选择“SQL限流”。
- 在“SQL限流”页面,开启SQL限流开关。
图2 开启SQL限流
- 单击“新增SQL限流”,选择需要限流的SQL类型,设置关键字以及最大并发数。
图3 设置页面
- 关键字:设置关键字时,您可以选择直接输入关键字,也可以选择将原始SQL拷贝到输入框中然后单击“生成关键字”,将原始SQL转换成关键字。
说明:
原始SQL转换成的关键字仅供参考,请谨慎使用。
关键字规则举例:
例如关键字是"SELECT~a>1", 含义为: SELECT以及a>1为该并发控制所包含的两个关键字,~为关键字间隔符,即若执行SQL命令包含SELECT与a>1两个关键字视为命中此条并发控制规则。
- 最大并发数:即满足同一规则的语句最大并发数,超过最大并发数会被拒绝执行。
- 关键字:设置关键字时,您可以选择直接输入关键字,也可以选择将原始SQL拷贝到输入框中然后单击“生成关键字”,将原始SQL转换成关键字。
- 确认无误后,单击“确定”。
若不再需要此条SQL限流规则,可以在SQL限流列表页单击“删除”,删除SQL限流规则。
父主题: SQL