日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

SQL限流

數據庫自治服務DAS(Database Autonomy Service)提供SQL限流功能。您可以通過SQL限流來控制數據庫請求訪問量和SQL并發量,保障服務的可用性。本文以RDS MySQL為例介紹如何使用SQL限流功能。

前提條件

支持的數據庫引擎為:

  • RDS MySQL 5.6、5.7、 8.0

  • PolarDB MySQL版 5.6、5.7、 8.0

  • PolarDB-X 2.0

應用場景

場景

說明

某類SQL并發急劇上升

例如緩存穿透或異常調用,可能會導致SQL并發量突然上升。

有數據傾斜SQL

例如大促時拉取某個特別大的數據,導致整體系統繁忙。

未創建索引表

例如SQL調用量特別大,并且沒有創建索引表,導致整體系統繁忙。

限流模式

支持的限流模式如下:

參數

說明

支持的數據庫

通過關鍵詞限流

根據SQL語句中的關鍵詞進行匹配從而限流。

  • RDS MySQL

  • PolarDB MySQL版

  • PolarDB-X 2.0

通過SQL模板ID限流

對SQL模板ID進行匹配從而限流,可從SQL日志、會話、EXPLAIN執行結果中獲得SQL模板ID。

說明

SQL模板ID是長度為8的16進制字符串。

PolarDB-X 2.0

通過執行耗時限流

根據SQL執行時間進行限流。創建了該類限流模式的規則后,當指定類型SQL的執行時間超過設定的閾值時,該類型SQL所屬的模板ID會被自動加入到限流規則中,SQL會按照規則指定的并發度執行。

說明

您可以同時設置限流SQL模板ID數量上限,達到上限后,便不再自動對其他SQL創建限流規則。

PolarDB-X 2.0

操作步驟

  1. 登錄DAS控制臺

  2. 在左側導航欄中,單擊實例監控

  3. 找到目標實例,單擊實例ID,進入目標實例詳情頁。

  4. 在左側導航欄,單擊實例會話

  5. 會話管理頁面,單擊SQL限流

    ss

  6. 在彈出的SQL限流對話框中,配置如下參數。

    參數

    說明

    限流模式

    根據需要選擇限流模式,詳情請參見限流模式

    SQL類型

    選擇SQL類型,取值如下:SELECTUPDATEDELETEINSERT

    說明
    • 當前支持限流INSERT類型的數據庫引擎:

      • RDS MySQL 8.0

      • PolarDB MySQL版 5.7、8.0

      • PolarDB-X 2.0

    • 不支持限流INSERT...SELECT...類型的SQL語句。

    最大并發度

    SQL最大并發數,允許設置的最小值為1。

    當同時執行的滿足限流策略的SQL數達到最大并發數時觸發SQL限流。

    限流時間

    SQL限流的生效時間。SQL限流是應急措施,建議您按實際需求設置限流時長,用完及時關閉。

    SQL關鍵詞

    需要限流的SQL關鍵詞。

    說明

    限流模式通過關鍵詞限流時,需要配置此參數。

    • 若您設置多個關鍵詞,則SQL語句中需要同時包含這些關鍵詞才會觸發限流規則,多個關鍵詞間用波浪線(~)分隔,且無順序限制。

    • 不支持只設置SELECT、UPDATE、DELETE為限流關鍵詞,且關鍵詞大小寫敏感(部分早期版本實例不區分)。

    關鍵詞設置舉例:如原始語句為SELECT min(id), max(id) FROM task_event WHERE gmt_modified < '2020-06-21' AND begin_time > '2020-07-09' AND source IN (527) AND id >= 15673 AND id <= 8015673 ,則對應該語句的限流關鍵詞為SELECT~min~id~max~id~FROM~task_event~WHERE~gmt_modified~AND~begin_time~AND~source~IN~AND~id~AND~id

    模板ID

    需要限流的SQL模板ID,多個SQL模板ID間用英文逗號(,)分隔。

    說明

    限流模式通過SQL模板ID限流時,需要配置此參數。

    SQL執行時間

    SQL執行時間的閾值,當SQL的執行時間大于設置的閾值時,系統會將該類型SQL所屬的SQL模板ID加入到限流規則中。

    說明

    限流模式通過執行耗時限流時,需要配置此參數。

    限流SQL ID數量上限

    通過執行耗時限流的SQL模板ID數量上限,達到上限后,系統不再對其他執行時間大于設置閾值的SQL創建限流規則。

    說明

    限流模式通過執行耗時限流時,需要配置此參數。

    被限流SQL的數據庫賬號

    被限流SQL所屬的數據庫賬號。

    說明

    數據庫實例為PolarDB-X 2.0,且限流模式通過關鍵詞限流通過SQL模板ID限流時,需要配置此參數。

    說明

    目標SQL限流規則創建后,當應用端使用了同時包含所有關鍵詞的SQL:

    • RDS MySQL 5.6、RDS MySQL 5.7的實例和PolarDB MySQL版 5.6的集群會返回1317錯誤(query execution was interrupted)。

    • RDS MySQL 8.0實例、PolarDB MySQL版 5.7和PolarDB MySQL版 8.0集群會讓相關SQL會處于Concurrency control waiting狀態,直至等待數量超過ccl_max_waiting_count參數的值(如果實例版本支持該參數)時,會返回錯誤碼和錯誤描述(Concurrency control waiting count exceed max waiting count),錯誤碼分別是:

      • RDS MySQL 8.0為ERROR 7534 (HY000)

      • PolarDB MySQL版 5.7為ERROR 3277 (HY000)

      • PolarDB MySQL版 8.0為ERROR 7533 (HY000)

      其中,若ccl_max_waiting_count參數值為默認值0時,所有被限流的SQL均會處于Concurrency control waiting狀態,不返回錯誤。通過DAS限流時,若該參數值為0,DAS會將其值設置為DAS的默認值(當前默認值為10);若用戶將其設置為大于0的其他值,DAS不再設置該參數,直接使用用戶的設置。

  7. 單擊創建

    SQL限流規則創建完成后,您可以在運行中頁簽查看SQL限流規則的相關信息。

    如您需要關閉修改限流規則,可單擊目標規則右側操作欄的關閉修改按鈕。

相關文檔

自動SQL限流

相關API

API

描述

EnableSqlConcurrencyControl

啟用SQL限流。

DisableSqlConcurrencyControl

關閉指定限流規則。

DisableAllSqlConcurrencyControlRules

關閉全部正在執行的限流規則。

GetRunningSqlConcurrencyControlRules

獲取正在執行的限流規則。

GetSqlConcurrencyControlRulesHistory

獲取正在執行或被觸發過的限流規則。

GetSqlConcurrencyControlKeywordsFromSqlText

根據SQL語句生成限流關鍵詞。