recherche

Maison  >  Questions et réponses  >  le corps du texte

Requête entraînant une utilisation énorme du processeur et une latence élevée

La requête suivante entraîne une utilisation énorme du processeur et une latence élevée dans mon environnement de base de données. J'ai essayé d'utiliser différents types d'index pour améliorer les performances des requêtes, mais malheureusement, aucun index n'a contribué à améliorer les performances. Existe-t-il une suggestion pour réécrire la requête pour obtenir le même résultat.

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粉182218860322 Il y a quelques jours410

répondre à tous(1)je répondrai

  • P粉610028841

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

    Cet indice s'apparie view_mats 有益:INDEX(mngy, nonUnixjdjf)。也就是说,对于 trip_dstyINDEX(mngy, jdjf).

    et (éventuellement) supprimer idx_n1 puisqu'il ne contient que le début de cet index.

    (Je ne connais pas entièrement les magasins de colonnes ; le conseil ci-dessus concerne les index InnoDB ; il peut s'appliquer ici.)

    En général, (m,n) 是无用的,并且可能导致舍入错误。 double(20,10) 可能应该是普通的 doubleDECIMAL(20,10) sur Float et Double.

    LIMIT 10000 - Avez-vous vraiment livré autant de lignes au client ? pelleter autant est également un problème de performance.

    répondre
    0
  • Annulerrépondre