Hallo,
ich habe schon versucht mittels Google mein "Problem" zu lösen jedoch ohne Erfolg:
Folgendes:
Wenn ich die Abfrage mit Order by ASC mache, dauert diese 0.0016 Sekunden.
Mache ich die gleiche Abfrage per DESC, dauert diese 0.0436 also knapp 30x so lange.
Woran kann das liegen?
29893 insgesamt, Die Abfrage dauerte 0.0016 Sekunden.
29893 insgesamt, Die Abfrage dauerte 0.0436 Sekunden.
Die Tabelle hat Rund 1,4Millionen eintraege und 6 Spalten. Die spalten "timestamp", "on_off" und "client" sind indexiert.
Grenze ich die suche noch weiter ein mit:
Dauert es: 71 insgesamt, Die Abfrage dauerte 0.0443 Sekunden.
Andersrum sortiert:
Dauert es:71 insgesamt, Die Abfrage dauerte 0.0102 Sekunden.
Sortiere ich die gleiche Abfrage nach der ID ist diese aufeinmal super schnell
Dauert es:71 insgesamt, Die Abfrage dauerte 0.0007 Sekunden
Bei der letzten Abfrage bin ich am erstaunsten.
Obwohl bei den letzten drei Abfragen die Anzahl der Treffer immer gleich ist, ist die Abfrage mit der Sortierung über die ID mit DESC am schnellsten.
Sortiere ich die letzte Abfrage von DESC nach ASC um dauert es 0.0634 Sekunden lange.
Also rund 90x langsamer..... ich verstehe es einfach nicht.
Selbst wenn ich bei der letzten Zeile das Order by weg lasse dauert es noch 0.0559.. Also auch länger
Wie ist das möglich? Gibt es da eine Sinnvolle erklärung?
Vielen Dank
ich habe schon versucht mittels Google mein "Problem" zu lösen jedoch ohne Erfolg:
Folgendes:
Wenn ich die Abfrage mit Order by ASC mache, dauert diese 0.0016 Sekunden.
Mache ich die gleiche Abfrage per DESC, dauert diese 0.0436 also knapp 30x so lange.
Woran kann das liegen?
29893 insgesamt, Die Abfrage dauerte 0.0016 Sekunden.
Code:
SELECT * FROM `cronjobrun` WHERE `client` LIKE ' PI_RASPI'AND on_off = 0 ORDER BY `cronjobrun`.`timestamp` ASC
29893 insgesamt, Die Abfrage dauerte 0.0436 Sekunden.
Code:
SELECT * FROM `cronjobrun` WHERE `client` LIKE ' PI_RASPI'AND on_off = 0 ORDER BY `cronjobrun`.`timestamp` DESC
Die Tabelle hat Rund 1,4Millionen eintraege und 6 Spalten. Die spalten "timestamp", "on_off" und "client" sind indexiert.
Grenze ich die suche noch weiter ein mit:
Code:
SELECT * FROM `cronjobrun` WHERE `client` LIKE ' PI_RASPI'AND on_off = 0 AND `timestamp` > "2015-11-27" ORDER BY `cronjobrun`.`timestamp` DESC
Andersrum sortiert:
Code:
SELECT * FROM `cronjobrun` WHERE `client` LIKE ' PI_RASPI'AND on_off = 0 AND `timestamp` > "2015-11-27" ORDER BY `cronjobrun`.`timestamp` ASC
Sortiere ich die gleiche Abfrage nach der ID ist diese aufeinmal super schnell
Code:
SELECT * FROM `cronjobrun` WHERE `client` LIKE ' PI_RASPI'AND on_off = 0 AND `timestamp` > "2015-11-27" ORDER BY `cronjobrun`.`id` DESC
Bei der letzten Abfrage bin ich am erstaunsten.
Obwohl bei den letzten drei Abfragen die Anzahl der Treffer immer gleich ist, ist die Abfrage mit der Sortierung über die ID mit DESC am schnellsten.
Sortiere ich die letzte Abfrage von DESC nach ASC um dauert es 0.0634 Sekunden lange.
Also rund 90x langsamer..... ich verstehe es einfach nicht.
Selbst wenn ich bei der letzten Zeile das Order by weg lasse dauert es noch 0.0559.. Also auch länger
Wie ist das möglich? Gibt es da eine Sinnvolle erklärung?
Vielen Dank