dedlfix: Umkreissuche

Beitrag lesen

Tach!

Es kann hier nämlich kein Index benutzt werden, wie es bei "between" möglich wäre.

Hä? ID ist einer der schnellsten Indexe.

Wenn du für die Selektion von Datensätzen eine Formel im WHERE hast, muss diese für jeden Datensatz einzeln berechnet werden. Es gibt keine Indexe mit berechneten Ausdrücken (in MySQL).

Zum Beispiel beim Suchen nach Datümern, sollte man nicht heute < Datumsfeld - 7 Tage als Bedingung nehmen, sondern heute + 7 Tage < Datumsfeld um die nächsten 7 Tage mit zu berücksichtigen. Der Wert heute + 7 Tage kann dann einmalig berechnet werden und muss nur noch gegen den Index auf dem Datumsfeld geprüft werden (also, wenn da ein Index ist). Ansonsten hätte jedes Datumsfeld erst berechnet werden müssen, um verglichen werden zu können.

dedlfix.