लेते हैं हाल ही में मुझे MySQL को विशिष्ट प्रश्नों पर लटका दिया जा रहा है। मेरे पास 500,000+ रिकॉर्ड के साथ एक टेबल है।MySQL सॉर्टिंग परिणाम लंबे समय तक
चुनें *
items
से जहां (itemlist_id = 115,626) द्वारा tableOrder DESC LIMIT में 1
यहाँ आदेश की व्याख्या: क्वेरी किया जा रहा रन है
| 1 | सरल | आइटम | सभी | नल | नल | नल | नल | 587113 | कहां उपयोग करना; Filesort का उपयोग करना |
और यहाँ process_list प्रविष्टि है:
| 2529 9 6 | जड़ | लोकलहोस्ट | itemdb | प्रश्न | 0 | सॉर्टिंग परिणाम | चुनें *
items
से जहां (itemlist_id = 115642) तालिका ऑर्डर डीईएससी लिमिटेड द्वारा आदेश 1 |
कोई विचार क्या इस क्वेरी को संसाधित करने में 10 मिनट लग सकता है? जब मैं इसे मैन्युअल रूप से चलाता हूं तो यह जल्दी से किया जाता है। (सेट में 1 पंक्ति (0.86 सेकंड))
धन्यवाद
क्या आप वाकई सॉर्टिंग धीमा है, और रिकॉर्ड नहीं ढूंढ रहे हैं? यदि आपके पास उस फ़ील्ड पर 500k + रिकॉर्ड्स का टेबल स्कैन है जो अनुक्रमित नहीं है तो इसमें कुछ समय लग सकता है। और "मैनुअल" तीव्रता हो सकती है क्योंकि MySQL (या ओएस) ने पहले के प्रयास से डेटा में कैश किया है और यह बहुत तेज़ चलता है। –