全部產品
Search
文件中心

PolarDB:自訂SQL逾時時間

更新時間:Jul 06, 2024

本文介紹了自訂SQL逾時時間HINT的文法和樣本。

本文適用於PolarDB-X 1.0 5.3及以上版本。

PolarDB-X 1.0中,PolarDB-X 1.0節點與RDS的預設的SQL執行逾時時間是900秒(可以調整),但是對於某些特定的慢SQL,其執行時間可能超過了900秒 。針對這種慢SQL,PolarDB-X 1.0提供了調整逾時時間的自訂HINT。通過這個自訂HINT可以任意調整SQL執行時間長度。

文法

/*+TDDL:SOCKET_TIMEOUT(time)*/        

其中,SOCKET_TIMEOUT的單位是毫秒。通過該HINT使用者可以根據業務需要,自由調整SQL語句的逾時時間。

注意事項

  • PolarDB-X 1.0自訂HINT支援/*+TDDL:hint_command*//!+TDDL:hint_command*/兩種格式。
  • 如果使用/*+TDDL:hint_command*/格式,在使用MySQL官方命令列用戶端執行帶有PolarDB-X 1.0自訂HINT的SQL時,請在登入命令中加上-c 參數。否則,由於PolarDB-X 1.0自訂HINT是以 MySQL 注釋形式使用的,該用戶端會將備註陳述式刪除後再發送到服務端執行,導致PolarDB-X 1.0自訂HINT失效。具體請查看MySQL 官方用戶端命令

樣本

設定SQL逾時時間為40秒:

/*+TDDL:SOCKET_TIMEOUT(40000)*/SELECT * FROM t_item;    
說明 逾時時間設定得越長,佔用資料庫資源的時間就會越長。如果同一時間長時間執行的SQL過多,可能消耗大量的資料庫資源,從而導致無法正常使用資料庫服務。所以,對於長時間執行的SQL語句,盡量對SQL語句進行最佳化。