Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:Pobierz najnowsze wpisy starsze niż xxx, Wydajność

Potrzebujesz złożonego indeksu nad (objectID, time) :

ALTER TABLE my_table ADD INDEX (objectID, time)

Powodem tego jest to, że MySQL może wtedy pobrać maksymalny time dla każdego objectID bezpośrednio z drzewa indeksowego; może następnie użyć tego samego indeksu przy ponownym dołączaniu do tabeli, aby znaleźć maksymalna grupa rekordy używające czegoś podobnego do twojego drugiego zapytania (ale należy dołączyć do obu objectID i time —Lubię używać NATURAL JOIN w takich przypadkach):

SELECT *
FROM   my_table NATURAL JOIN (
  SELECT   objectID, MAX(time) time
  FROM     my_table
  WHERE    time <= 1353143351
  GROUP BY objectID
) t



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przeczytaj e-mail imap php

  2. zwróć oryginalny numer wiersza mySQL

  3. Dlaczego w tym WYJAŚNIENI nie są używane żadne klucze?

  4. Wybierz n największych wartości z tabeli

  5. Pobierz dane z tabeli z funkcją Group_concat