全部產品
Search
文件中心

Lindorm:慢查詢診斷

更新時間:Dec 06, 2025

慢查詢是指執行時間過長或響應速度過慢的查詢。如果執行個體中存在過多的慢查詢,可能會影響業務的整體穩定性。針對這一問題,Lindorm寬表引擎提供了慢查詢診斷功能,協助您通過SQL定位、中止和回溯慢查詢,從而保障業務的正常運行。

注意事項

寬表引擎2.6.3及以上版本支援定位慢查詢和終止慢查詢;回溯慢查詢功能需2.8.2.13及以上版本。如何查看和升級目前的版本,請參見寬表引擎版本說明升級小版本

重要

要求Lindorm SQL為2.6.6以上版本。如何查看Lindorm SQL的版本,請參見SQL版本說明

定位慢查詢

Lindorm預設會通過UUID標識執行的語句,您可以通過SHOW PROCESSLIST語句展示寬表引擎中正在執行的全部查詢的相關資訊。

SHOW PROCESSLIST的SQL用法如下:

SHOW PROCESSLIST;
說明
  • SHOW PROCESSLIST語句執行結果展示的視圖內容,隨著儲存引擎的不同而略有區別,但其中的ID欄位都是用來標識查詢以及後續治理的重要欄位。

  • SHOW PROCESSLIST的執行結果中可能會包含部分ID不符合UUID、通過非SQL方式執行的查詢。

SHOW PROCESSLIST文法的更多說明,請參見SHOW PROCESSLIST

終止慢查詢

在定位到慢查詢後,您可以通過KILL QUERY語句終止指定的慢查詢,以保證系統的穩定性。

KILL QUERY的SQL用法如下:

KILL QUERY '581f9ab8-68af-4c93-b73a-eb99679ed192';

KILL QUERY文法的更多說明,請參見KILL QUERY

回溯慢查詢

Lindorm提供了慢查詢檢視,可以對指定時間範圍內滿足條件的慢查詢進行回溯,方便後續複盤和改進。

  1. 開啟慢查詢回溯功能。

    ALTER SYSTEM SET SLOW_QUERY_RECORD_ENABLE = true;

    ALTER SYSTEM的用法及SLOW_QUERY_RECORD_ENABLE參數的詳細說明,請參見ALTER SYSTEM

  2. 配置慢查詢記錄閾值

    設定慢查詢閾值為10秒(10000毫秒),即只有運行時間長度超過10秒的查詢才會被視為慢查詢。

    ALTER SYSTEM SET SLOW_QUERY_TIME_MS = 10000;
  3. 回溯慢查詢。

    您可以直接使用SELECT語句查看慢查詢檢視,追溯相關的慢查詢記錄。

    -- 查詢前10個慢查詢
    SELECT * FROM lindorm._slow_query_ LIMIT 10;
    
    -- 查詢時間戳記1680152319000以後的慢查詢個數
    SELECT COUNT(sql_query_s) AS num FROM lindorm._slow_query_ WHERE query_start_time >= 1680152319000;

    參數說明

    查詢檢視的名稱固定為lindorm._slow_query_,其中lindorm為Lindorm內部Database,不支援修改。_slow_query_為慢查詢表名,不支援修改。

    返回結果集(查詢檢視)說明

    欄位名

    說明

    query_start_time

    查詢請求的發起時間。

    query_id

    查詢請求ID。

    sql_query_id

    查詢請求的SQL語句。如果沒有SQL語句,顯示為空白。

    duration_i

    查詢請求的執行時間。

    status_s

    查詢請求最終是失敗的或者成功的。

    ip_s

    發送查詢請求的IP地址。如果不涉及發送查詢請求的IP地址,顯示為空白。

    server_s

    查詢請求執行的節點。

    query_s

    執行的內部查詢請求語句。

    重要
    • 慢查詢檢視中儲存的慢查詢記錄預設只儲存1小時。

    • 頻繁記錄慢查詢對執行個體的整體效能存在一定影響,因此在效能敏感的應用情境下,慢查詢閾值不適宜設定得過小。