मैं था मेरी क्वेरी के साथ मुद्दों है कि निष्पादित करने के लिए 17 सेकंड लिया (350k पंक्तियाँ) हो रहा है:क्वेरी प्रदर्शन; यकीन नहीं क्या
SELECT idgps_unit, MAX(dt)
FROM gps_unit_location
GROUP BY 1
के बारे में बताएं
1 SIMPLE gps_unit_location index fk_gps2 5 422633
इसके साथ खेलने के बाद, मैं इस समाधान है कि लेता है के साथ आया था 1second:
Select idgps_unit, MAX(dt) from (
SELECT idgps_unit, dt
FROM gps_unit_location
) d1
Group by 1
के बारे में बताएं:
1 PRIMARY <derived2> ALL 423344 Using temporary; Using filesort
2 DERIVED gps_unit_location index gps_unit_location_dt_gpsid 10 422617 Using index
और अब मैं उलझन में हूं- क्यों क्वेरी # 2 तेज है, जबकि क्वेरी # 1 एक ही प्रश्न प्रतीत होता है और लगता है कि यह अधिक कुशलतापूर्वक लिखा गया है।
Index1: डीटी, Index2: idgps_unit, Index3: idgps_unit + डीटी
निष्पादन समय संगत कर रहे हैं; क्वेरी # 1 हमेशा 17-19sec लेता है; जबकि #1sec।
मैं Godaddy VPS Windows सर्वर का उपयोग कर रहा 2008 अर्थव्यवस्था
तालिका उदाहरण:
id | idgps_unit | dt | location
1 | 1 | 2012-01-01 | 1
2 | 1 | 2012-01-02 | 2
3 | 2 | 2012-01-03 | 3
4 | 2 | 2012-01-04 | 4
5 | 3 | 2012-01-05 | 5
mysql या tsql?!? –
क्या दोनों प्रश्नों के लिए निष्पादन समय सुसंगत है? क्योंकि यह संभव है कि पहली क्वेरी निष्पादित की गई और दूसरी क्वेरी द्वारा उपयोग किए जाने पर परिणाम कैश किए गए हों। – Slowcoder
यदि आप उन प्रश्नों पर 'EXPLAIN' चलाने का परिणाम पोस्ट कर सकते हैं, तो यह सहायक हो सकता है। –