विचार करने के लिए कुछ कारक हैं:
- सॉर्टिंग एक N.log(N) ऑपरेशन है।
- 14M पंक्तियों के लिए सॉर्ट मुख्य मेमोरी में अच्छी तरह से फिट हो सकता है; 500M पंक्तियों वाला सॉर्ट शायद नहीं करता है, इसलिए सॉर्ट डिस्क पर फैल जाता है, जो चीजों को बहुत धीमा कर देता है।
चूंकि कारक आकार में लगभग 30 है, बड़े डेटा सेट के लिए नाममात्र सॉर्ट समय 50 गुना लंबा - दो घंटे से कम के क्रम का होगा। हालांकि, आपको 8 बाइट्स प्रति डेटा मान और लगभग 8 बाइट्स ओवरहेड की आवश्यकता है (यह एक अनुमान है - mySQL को ट्यून करें यदि आप इसके बारे में अधिक जानते हैं कि यह किसी इंडेक्स में क्या स्टोर करता है)। तो, 14M × 16 ≈ 220 MB मुख्य मेमोरी। लेकिन 500M × 16 ≈ 8GB मेन मेमोरी। जब तक आपकी मशीन में इतनी मेमोरी नहीं बची है (और MySQL को इसका उपयोग करने के लिए कॉन्फ़िगर किया गया है), तब बड़ा प्रकार डिस्क पर फैल रहा है और बाकी समय के लिए बहुत खाता है।