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