Requête entraînant une utilisation énorme du processeur et une latence élevée
P粉182218860
P粉182218860 2024-01-10 17:21:24
0
1
447

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粉182218860
P粉182218860

répondre à tous(1)
P粉610028841

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal