SQL限流
更新時間 2025-09-15 09:25:01
最近更新時間: 2025-09-15 09:25:01
分享文章
SQL限流功能可以控制數據庫請求訪問量和SQL并發量,保障服務的可用性。
前提條件
- 僅限來源為天翼云RDS的MySQL數據庫。
- 實例暫時僅支持MySQL 8.0以上版本。
- 已錄入DMS中,且實例狀態正常的數據庫實例。
應用場景
場景 說明 慢SQL 防止慢SQL執行導致整體系統繁忙。 高頻訪問SQL 通過設置合適的限流參數,可以限制數據庫中高頻訪問SQL的執行,避免這些SQL對數據庫的性能和穩定性造成影響。 惡意攻擊 防止惡意攻擊者通過大量請求耗盡數據庫資源,從而保護數據庫的安全。
SQL限流范圍
參數 說明 通過SQL語句限流 根據SQL語句的digest進行匹配從而限流。 通過SQL類型+庫+表限流 對指定庫表下特定類型的SQL進行匹配從而限流。
選擇SQL類型,取值如下:SELECT 、 UPDATE 、 DELETE 、INSERT、REPLACE。
說明SQL語句計算digest時不會包含輸入SQL語句結尾的";"
操作步驟
- 登錄數據管理服務。
- 在左側導航欄中,單擊 智能運維 > 會話管理 ,進入會話管理頁面。
- 在會話管理頁面下方,點擊SQL限流頁簽,即可查看、創建、結束限流任務。
功能介紹
SQL限流功能可以控制數據庫請求訪問量和SQL并發量,保障服務的可用性。
注意主實例配置的限流規則,在只讀實例上也同樣生效,反之亦然。
創建任務
進入SQL限流頁面后,點擊創建任務按鈕,在彈出的創建SQL限流任務對話框中可配置如下參數。
參數 屬性 SQL范圍 支持SQL語句、選擇庫表兩種方式。
SQL語句:輸入SQL語句進行限流。
選擇庫表:選擇SQL類型(如SELECT?、?UPDATE?、?DELETE?、INSERT、REPLACE)、目標庫、目標表進行限流。
最大并發數 自定義輸入數值,設置SQL最大并發數。當同時執行的在SQL范圍內的SQL數達到最大并發數時會觸發SQL限流。
說明最大并發數設置為0時將限制SQL執行;非0時,所有被限流的SQL均會處于Concurrency?control?waiting狀態,不返回錯誤。
執行方式 定時:定時自動開啟和關閉限流任務,可設置時間周期、限流時間段。
手動:手動開啟和關閉限流任務。
結束任務
進入SQL限流頁面后,選擇目標任務,點擊結束按鈕即可。