Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie wähle ich alle Datensätze aus, die 10 Minuten innerhalb des aktuellen Zeitstempels in MySQL liegen?

Der effizienteste Weg wäre, Ihren Zeitstempel (und nur den Zeitstempel, ohne irgendwelche Funktionen darauf zu verwenden) mit einem Ausdruck zu vergleichen, der für jede Zeile als Konstante berechnet werden kann. Auf diese Weise kann mysql den Index verwenden, der in Ihrer Zeitstempelspalte definiert ist.

SELECT * FROM myTable
WHERE last_seen >= NOW() - INTERVAL 10 MINUTE

Sie können immer EXPLAIN SELECT ... versuchen um zu sehen, ob ein Index verwendet werden kann, um Zeilen zu finden, die Ihre WHERE-Bedingung erfüllen, ohne dass jede Zeile in der Tabelle überprüft werden muss.