Betrachten Sie zwei Abfragen (eine verwendet DATE()
Funktion, um Datum aus Datetime-Feld zu extrahieren und andere nicht).Extrahieren Datum Teil von Datetime wirklich notwendig?
SELECT count(*)
FROM creatives
WHERE DATE(creative_last_seen) >= SUBDATE(CURDATE(), 1)
AND DATE(creative_last_seen) < curdate();
Gesamtreaktionszeit: 1 min 19 sec
SELECT count(*)
FROM creatives
WHERE creative_last_seen >= SUBDATE(CURDATE(), 1)
AND creative_last_seen < curdate();
Gesamtreaktionszeit: 8,9 sec
Beide Abfragen so weit identische Ergebnisse produzieren als ich sagen kann. Die erste Abfrage wegen der Datumsextraktion benötigt sehr viel Zeit, während die andere wesentlich schneller ist.
Ich dachte zuerst, ich brauchte DATE()
Funktion, um die Abfrage zu arbeiten. Aber es scheint ohne die DATE()
Funktion gut zu funktionieren. Fehle ich irgendetwas, indem ich die letztere Abfrage verwende?