天天看點

PolarDB-X 1.0-SQL 手冊-Hint-自定義SQL逾時時間

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

本文适用于PolarDB-X 5.3 及以上版本,其他版本請參見 自定義SQL逾時時間HINT

注意事項

  • PolarDB-X 自定義 HINT 支援

    /*+TDDL:hint_command*/

    /!+TDDL:hint_command*/

    兩種格式。
  • 如果使用

    /*+TDDL:hint_command*/

    格式,在使用 MySQL 官方指令行用戶端執行帶有 PolarDB-X 自定義 HINT 的 SQL 時,請在登入指令中加上

    -c

    參數。否則,由于 PolarDB-X 自定義 HINT 是以 MySQL 注釋 形式使用的,該用戶端會将注釋語句删除後再發送到服務端執行,導緻 PolarDB-X 自定義 HINT 失效。具體請檢視 MySQL 官方用戶端指令

文法

PolarDB-X自定義 SQL 逾時時間 HINT 的文法如下:

  1. /*+TDDL:SOCKET_TIMEOUT(time)*/

其中,

SOCKET_TIMEOUT

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

示例

  • 設定 SQL 逾時時間為40秒:
  1. /*+TDDL:SOCKET_TIMEOUT(40000)*/SELECT * FROM t_item;

逾時時間設定得越長,占用資料庫資源的時間就會越長。如果同一時間長時間執行的 SQL 過多,可能消耗大量的資料庫資源,進而導緻無法正常使用資料庫服務。是以,對于長時間執行的 SQL 語句,盡量對 SQL 語句進行優化。