mySQL - Index Optimierung?

Maik20

Erfahrenes Mitglied
Hallo,

die Ausführung der folgenden Abfrage dauert bei mir beim ersten Aufruf ca. 20 Sekunden. Bei den folgenden Aufrufen - da noch im Cache (nehm ich an) - ca. 5 Sekunden.
Die Tabelle hat ca. 300.000 Einträge ist also recht klein. Ich nehme an das ich irgendwie einen falschen Index gesetzt habe. Welche Felder sollte ich Indexieren? Oder ist die Geschwindkeit normal?

Code:
SELECT BLOCK, KEY2, SUM( FIELD1 ) AS SUMFIELD1, SUM( FIELD2 ) AS SUMFIELD2, (SUM( FIELD2 ) / SUM( FIELD1 )) AS SUMFIELD1u2, SUM( FIELD3 ) AS SUMFIELD3, SUM( FIELD4 ) AS SUMFIELD4, SUM( FIELD5 ) AS SUMFIELD5, SUM( FIELD6 ) AS SUMFIELD6, SUM( FIELD7 ) AS SUMFIELD7
FROM (
     DATEN
)
WHERE TAG >=0
AND TAG <=365
AND BLOCK = 2
AND KEY1 = 'P'
AND (
KEY2 = 'A'
OR KEY2 = 'B'
OR KEY2 = 'D'
OR KEY2 = 'G'
OR KEY2 = 'H'
)
GROUP BY BLOCK, KEY2
ORDER BY KEY2 ASC 
LIMIT 0 , 21

Ich habe folgenden Index (beide nicht Primär) eingerichtet:
Index1: BLOCK, KEY1, KEY2, KEY3, KEY4, TAG
Index2: BLOCK, TAG

Danke für eure Hilfe.
 

Neue Beiträge

Zurück