Mam tabelę, która otrzymuje setki żądań na minutę. Problem, który mam, polega na tym, że potrzebuję sposobu na wybranie tylko tych wierszy, które wstawiono w ciągu ostatnich 5 minut. Próbuję tego:Wybierz wiersze, które są starsze niż 5 minut, używając DATE_SUB
SELECT count(id) as count, field1, field2
FROM table
WHERE timestamp > DATE_SUB(NOW(), INTERVAL 5 MINUTE)
ORDER BY timestamp DESC
Mój problem polega na tym, że zwraca 70k + wyniki i zliczanie. Nie jestem pewien, co robię źle, ale chciałbym uzyskać pomoc w tej sprawie. Ponadto, gdyby nie było sposobu na grupie nich przez minutę, aby to wyglądać tak:
| count | field1 | field2 |
----------------------------
chęcią pomocy i kierunek na ten temat, więc proszę dać mi znać swoje myśli.
Jaki jest typ 'timestamp' kolumnie? – Tadeck
@Tadeck to datetime, czy to ma znaczenie? –
To robi wielką różnicę, ponieważ niektórzy ludzie używają 'INT' do przechowywania znaczników czasu. Różni się także od typu "TIMESTAMP", ponieważ 'DATETIME' jest traktowany dosłownie i nie dostosowuje się do strefy czasowej. Może to być problem - porównaj znacznik czasu ostatnio wstawionego wpisu z wynikiem "WYBIERZ TERAZ(); i daj nam znać o wartościach obu. – Tadeck