sql >> Databáze >  >> RDS >> Mysql

Jak vybrat všechny záznamy, které jsou 10 minut v rámci aktuálního časového razítka v MySQL?

Nejúčinnějším způsobem by bylo porovnat vaše časové razítko (a pouze časové razítko, aniž byste na něm použili jakékoli funkce) s výrazem, který lze vypočítat jako konstantní pro každý řádek, tímto způsobem může mysql používat index definovaný ve sloupci vašeho časového razítka.

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

Vždy můžete zkusit EXPLAIN SELECT ... abyste zjistili, zda lze index použít k nalezení řádků splňujících vaši podmínku WHERE, aniž byste museli kontrolovat každý řádek v tabulce.



  1. Vzor připojení k databázi PHP singleton

  2. Existuje optimální metoda pro objednání složeného indexu MySQL?

  3. Může pole tabulky obsahovat spojovník?

  4. Multi-Cloud Deployment pro replikaci MySQL