dennisnowack
Mitglied
Hi Leute!
Ich sitze gerade an einem Fremdprojekt, die Datenbank zu optimieren und habe hier ein Problem mit einer Tabelle. Die Abfrage lautet in etwa so:
SELECT * FROM tabelle WHERE id > '0' AND ( wert = '0' OR wert = '1000007202') AND NOW() < DATE_ADD( dateTime, INTERVAL 24 HOUR ) ORDER BY id DESC LIMIT 10
Die Tabelle hat unter anderem die Spalten:
id (primary key)
wert (von mir testweise als index gesetzt)
dateTime (von mir ebenso testweise als index gesetzt)
Die Abfrage selbst sollte "lediglich" um die 6.000 rows als Ergebnis ausspucken, limitiert auf 10 ^^
Daher dachte / denke ich mir, dass es auch möglich sein müsste/sollte, die Tabelle so zu optimieren, dass die EXPLAIN Abfrage nur noch die etwaigen 6.000 rows ausspuckt statt die über 1,2 MIO.
die EXPLAIN abfrage spuckt derzeit folgendes aus:
id |select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
1 | SIMPLE | tabelle | range | PRIMARY,channel | channel | 4 | NULL | 1247214 | Using where; Using filesort
ich habe auch schon versucht einen kombinierten Index zu setzen, was bei anderen Tabellen / Abfragen Wunder bewirkte, aber ich bekomme diese Tabelle / Abfrage par tout nicht optimiert ...
Hat jemand einen Lösungsansatz
Danke im Voraus ^^
Ich sitze gerade an einem Fremdprojekt, die Datenbank zu optimieren und habe hier ein Problem mit einer Tabelle. Die Abfrage lautet in etwa so:
SELECT * FROM tabelle WHERE id > '0' AND ( wert = '0' OR wert = '1000007202') AND NOW() < DATE_ADD( dateTime, INTERVAL 24 HOUR ) ORDER BY id DESC LIMIT 10
Die Tabelle hat unter anderem die Spalten:
id (primary key)
wert (von mir testweise als index gesetzt)
dateTime (von mir ebenso testweise als index gesetzt)
Die Abfrage selbst sollte "lediglich" um die 6.000 rows als Ergebnis ausspucken, limitiert auf 10 ^^
Daher dachte / denke ich mir, dass es auch möglich sein müsste/sollte, die Tabelle so zu optimieren, dass die EXPLAIN Abfrage nur noch die etwaigen 6.000 rows ausspuckt statt die über 1,2 MIO.
die EXPLAIN abfrage spuckt derzeit folgendes aus:
id |select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
1 | SIMPLE | tabelle | range | PRIMARY,channel | channel | 4 | NULL | 1247214 | Using where; Using filesort
ich habe auch schon versucht einen kombinierten Index zu setzen, was bei anderen Tabellen / Abfragen Wunder bewirkte, aber ich bekomme diese Tabelle / Abfrage par tout nicht optimiert ...
Hat jemand einen Lösungsansatz
Danke im Voraus ^^