全部产品
云市场

SQL限流

更新时间:2020-05-08 15:40:45

数据库自治服务DAS(原HDM)提供SQL限流功能。您可以通过SQL限流来控制数据库请求访问量和SQL并发量,保障服务的可用性。本文以RDS MySQL为例介绍如何使用SQL限流功能。

前提条件

SQL限流仅支持RDS MySQL 5.6、RDS MySQL 5.7和PolarDB MySQL 5.6。

背景介绍

数据库是大部分应用的核心依赖。为防止数据库压力过大,一般都会在应用端做优化和控制。但在以下场景,也需要在数据库端做优化控制。

场景 说明
某类SQL并发急剧上升 例如缓存穿透或异常调用,可能会导致SQL并发量突然上升。
有数据倾斜SQL 例如大促时拉取某个特别大的数据,导致整体系统繁忙。
未创建索引SQL 例如SQL调用量特别大,并且没有创建索引,导致整体系统繁忙。

操作步骤

  1. 进入实例会话页面,具体操作请参见实例会话

  2. 实例会话页面,单击SQL限流
    SQL

  3. SQL限流(过滤)对话框,单击页面右上角创建
    创建

  4. 创建SQL限流规则对话框中,填入相应信息,单击创建

    配置 说明
    SQL类型 选择SQL类型,取值如下:SELECTUPDATEDELETE
    最大并发度 SQL最大并发数,当包含关键词的SQL达到最大并发数时会触发限流策略。如果最大并发度为0,表示禁止包含该关键词的所有请求。
    限流时间 SQL限流的生效时间。SQL限流是应急措施,建议您按实际需求设置限流时长,用完及时关闭。
    SQL关键词 需要限流的SQL关键词。若您设置多个关键词,则SQL语句中需要同时包含这些关键词才会触发限流规则,多个关键词间用波浪线(~)分隔。

    目标SQL规则创建后,当应用端使用了同时包含所有关键词的SQL,就会收到1317错误(query execution was interrupted)。

  5. SQL限流规则创建完成后,您可以在SQL限流列表查看SQL规则的状态。
    列表

    如果您需要提前关闭或修改限流规则,可以单击目标规则右侧操作栏的关闭修改按钮。