dedlfix: MYSQL Abfrage von bestimmten Datum

Beitrag lesen

Tach!

WHERE
DATE(table.date) == '2013-08-30';
DATE(field) ist ein type cast, welches/welcher das Feld field auf sein Datum (Jahr+Monat+Tag) reduziert.

Ein Typecast ist DATE() nicht, sondern eine Funktion. Sie tut zwar das gewünschte, aber das kann sich negativ auf die Geschwindigkeit auswirken. Wenn MySQL keine Optimierung vornimmt, wird diese Funktion auf jeden Datensatz angewendet, ohne dass ein Index zum Einsatz kommen kann (sofern einer auf date vorhanden ist). Bei wenigen Datensätzen fällt das jedoch nicht ins Gewicht. Zur Verbesserung der Geschwindigkeit wäre es günstig, statt der Funktion den BETWEEN-Operator zu nehmen. Der operiert dann mit einer vollständigen Zeitangabe, also auch mit dem gesamten Feldinhalt, und damit ist dann wieder ein Index verwendbar.

dedlfix.