आप (objectID, time)
. से अधिक एक समग्र अनुक्रमणिका चाहते हैं :
ALTER TABLE my_table ADD INDEX (objectID, time)
इसका कारण यह है कि MySQL तब अधिकतम time
को पुनः प्राप्त कर सकता है प्रत्येक objectID
. के लिए सीधे इंडेक्स ट्री से; इसके बाद यह समूहवार अधिकतम
आपकी दूसरी क्वेरी जैसी किसी चीज़ का उपयोग करके रिकॉर्ड (लेकिन किसी को objectID
. दोनों में शामिल होना चाहिए और time
—मुझे NATURAL JOIN
का उपयोग करना पसंद है इस तरह के मामलों में):
SELECT *
FROM my_table NATURAL JOIN (
SELECT objectID, MAX(time) time
FROM my_table
WHERE time <= 1353143351
GROUP BY objectID
) t