SQL限流
针对新上业务不能及时发包优化的SQL和突发流量导致CPU等资源100%瓶颈的场景,SQL限流功能通过控制既定SQL规则的并发度协助业务侧及时流控,保证核心业务的稳定运行。
使用须知
- MariaDB SQL限流支持的实例版本需要大于等于10.5.16.230600。
- 新增的SQL限流规则仅对当前实例生效。
- 当SQL语句匹配多条限流规则时,优先生效最新添加的规则,之前的规则不再生效。
- 在添加SQL限流规则之前,已经开始执行的SQL语句,不会被记入并发数。
- 限流规则的关键字有顺序要求,只会按顺序匹配。例如:a~and~b只会匹配xxx a>1 and b>2,而不会匹配xxx b>2 and a>1。
- 如果复制时延过长,只读实例新增或删除限流规则时,不会立刻生效。
- 单个关键字首尾的空白字符会被忽略,包括' '、'\n'、'\r'、'\t'等。
- 以下场景不受SQL限流的限制:
- 系统表不限制。
- 不涉及数据查询的不限制。例如:SELECT sleep(xxx);
- root账户不限制。
- 对存储过程,触发器,函数内的SQL语句不限制。
操作步骤
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域和项目。
- 单击页面左上角的,选择“数据库 > 数据管理服务 DAS”,进入数据管理服务页面。
- 在左侧的导航栏中单击
页签,进入DBA智能运维实例列表页面。
您也可以在产品概览页面,单击“进入DBA智能运维”,进入DBA智能运维实例列表页面。
- 在实例列表页面右上角,按照引擎、实例名称或者实例IP筛选实例。
图1 筛选实例
- 选择目标实例,单击“详情”,进入“实例概览”页面。
- 在“SQL”页签下选择“SQL限流”。
- 在“SQL限流”页面,开启SQL限流开关。
图2 开启SQL限流
- 单击“新建SQL限流规则”,选择需要限流的SQL类型,设置关键字以及最大并发数。
图3 设置页面
表1 SQL限流规则参数说明 参数项
说明
SQL类型
支持选择三种类型:SELECT、UPDATE、DELETE。
关键字
最多支持128个关键字,不区分大小写。支持以下两种方式输入关键字。
- 直接输入关键字:例如关键字是"select~a",含义为:select以及a为该并发控制所包含的两个关键字,~为关键字间隔符,也就是说如果执行SQL语句中包含select与a两个关键字,那么命中此条并发控制规则。
- 原始SQL生成关键字:输入原始SQL再单击“生成关键字”,生成的关键字仅供参考,请谨慎使用。
最大并发数
输入最大并发数,与关键字匹配的SQL语句如果超过最大并发数会被拒绝执行。
kill满足规则的已有会话
勾选此选项后,不会结束root用户下的连接会话。
- 确认无误后,单击“确定”。
若不再需要此条SQL限流规则,可以在SQL限流列表页单击“删除”,删除SQL限流规则。