जैसा कि मैंने अभी पढ़ा है, ALTER TABLE ... ORDER BY ...
कुछ परिदृश्यों में प्रदर्शन को बेहतर बनाने के लिए क्वेरी उपयोगी है। मुझे आश्चर्य है कि पीके इंडेक्स इसमें मदद नहीं करता है। लेकिन, MySQL डॉक्स
से , ऐसा लगता है कि InnoDB करता है सूचकांक का उपयोग करें। हालाँकि InnoDB MyISAM की तरह धीमा हो जाता है। उस ने कहा, InnoDB के साथ आपको टेबल को फिर से ऑर्डर करने की आवश्यकता नहीं होगी, लेकिन आप MyISAM की धधकती गति को खो देंगे। यह अभी भी एक शॉट के लायक हो सकता है।
जिस तरह से आप समस्याओं की व्याख्या करते हैं, ऐसा लगता है कि स्मृति में बहुत अधिक डेटा लोड हो गया है (हो सकता है कि स्वैपिंग भी चल रही हो?) आप अपने मेमोरी उपयोग की निगरानी के साथ इसे आसानी से देख सकते हैं। यह कहना मुश्किल है क्योंकि मैं MySQL को अच्छी तरह से नहीं जानता।
दूसरी ओर, मुझे लगता है कि आपकी समस्या एक बहुत ही अलग जगह पर है:आप एक मशीन का उपयोग कर रहे हैं जिसमें केवल 512 मेग्स रैम डेटाबेस सर्वर के रूप में 4Mio पंक्तियों से अधिक वाली तालिका के साथ है ... और आप बहुत मेमोरी-हैवी प्रदर्शन कर रहे हैं उस मशीन पर पूरी मेज पर संचालन। ऐसा लगता है कि इसके लिए 512Megs लगभग पर्याप्त नहीं होंगे।
एक और अधिक मौलिक मुद्दा जो मैं यहां देख रहा हूं:आप ऐसे वातावरण में विकास कर रहे हैं (और साथ ही साथ परीक्षण भी कर रहे हैं) जो उत्पादन वातावरण से बहुत अलग है। आप जिस तरह की समस्या की व्याख्या कर रहे हैं, वह अपेक्षित है। आपकी विकास मशीन में आपकी उत्पादन मशीन की तुलना में छह गुना अधिक मेमोरी है। मेरा मानना है कि मैं सुरक्षित रूप से कह सकता हूं कि प्रोसेसर भी बहुत तेज है। उस स्थिति में, मेरा सुझाव है कि आप अपनी उत्पादन साइट की नकल करते हुए एक वर्चुअल मशीन बनाएं। इस तरह आप उत्पादन साइट को बाधित किए बिना आसानी से अपने प्रोजेक्ट का परीक्षण कर सकते हैं।