Je remarque des problèmes de performance sur mon serveur MySQL. Le journal de requête lente affiche quatre requêtes qui provoquent le problème, prenant environ 10 secondes pour exécuter chaque requête. Je me demande s'il existe un moyen plus efficace d'exécuter la requête.Aide pour l'optimisation d'une requête SQL
Le tableau que je choisissais de compte environ 13 000 lignes, et est structuré comme:
id p year time b o type
1 dec 10 2010-12-02 12:34:27 1000 1000 cape
2 jan 10 2010-12-02 12:34:27 1000 1000 cape
3 feb 10 2010-12-02 12:34:27 1000 1000 cape
4 q1 10 2010-12-02 12:34:27 1000 1000 cape
5 q2 10 2010-12-02 12:34:27 1000 1000 cape
6 q3 10 2010-12-02 12:34:27 1000 1000 cape
7 q4 10 2010-12-02 12:34:27 1000 1000 cape
8 11 10 2010-12-02 12:34:27 1000 1000 cape
9 12 10 2010-12-02 12:34:27 1000 1000 cape
10 dec 10 2010-12-02 12:34:27 1000 1000 pmx
11 jan 10 2010-12-02 12:34:27 1000 1000 pmx
12 feb 10 2010-12-02 12:34:27 1000 1000 pmx
13 q1 10 2010-12-02 12:34:27 1000 1000 pmx
14 q2 10 2010-12-02 12:34:27 1000 1000 pmx
15 q3 10 2010-12-02 12:34:27 1000 1000 pmx
16 q4 10 2010-12-02 12:34:27 1000 1000 pmx
Je cours quatre requêtes - un pour chaque type, qui sélectionnent chaque p et l'ordre par le temps. Ces données sont affichées sur la face avant du site Web à travers quatre tableaux.
Les requêtes qui sont lentes sont:
SELECT type,id,p,time,b,o
FROM zz
WHERE id = (SELECT MAX(id) FROM zz AS f
WHERE f.p = zz.p
AND type = 'pmx')
AND TYPE = 'pmx';
(alors la même pour trois autres types)
Quelqu'un at-il des conseils pour améliorer la requête réelle?
Merci
Tout d'abord créé des indices sur le type, les colonnes d'identification –
Merci pour cela, mais j'ai déjà des indices sur ces colonnes. – Aaron