首頁  >  問答  >  主體

查詢導致巨大的CPU利用率和高延遲

以下查詢導致我的資料庫環境出現巨大的 CPU 使用率和高延遲。 我嘗試使用不同類型的索引來提高查詢效能,但不幸的是任何索引都無助於提高效能。有沒有建議重寫查詢以獲得相同的結果。

query
SELECT kln.qsw, kln.mngy
FROM (
SELECT kln2.mngy, MAX(kln2.nonUnixjdjf) dm_hj
FROM mfh.view_mats kln2
WHERE kln2.jdjf <= '2022-10-19 10:47:25.000000' 
GROUP BY kln2.mngy
) pun_ghky
JOIN pun_ghky.mngy = kln.mngy);

P粉182218860P粉182218860283 天前380

全部回覆(1)我來回復

  • P粉610028841

    P粉6100288412024-01-11 14:18:51

    此索引對 view_mats 有益:INDEX(mngy, nonUnixjdjf)。也就是說,對於 trip_dstyINDEX(mngy, jdjf)

    並且(可能)刪除idx_n1,因為它只包含該索引的開頭。

    (我並不完全精通列存儲;上面的建議是針對 InnoDB 索引;它可能適用於此。)

    一般來說,Float 和 Double 上的 (m,n) 是無用的,並且可能導致舍入錯誤。 double(20,10) 可能應該是普通的 doubleDECIMAL(20,10)

    LIMIT 10000—您真的向客戶端交付了這麼多行嗎?鏟掉這麼多也是效能問題。

    回覆
    0
  • 取消回覆