प्रदान की आम तौर पर आप अपनी फाइल सिस्टम की जांच करने के लिए जब उसके datafile बहुत ज्यादा डिस्क (औजारों का उपयोग पर खंडित है तालिका अनुकूलन की जरूरत के लिए स्क्रिप्ट नीचे टिप्पणी और नोट्स पढ़ें GiantRobot द्वारा विखंडन की गणना नहीं की जा रही है), जब कई पंक्तियों को अद्यतन किया गया था और उनके आकार को बदल दिया गया था (जो पंक्ति विखंडन बनाएगा) या कई रिकॉर्ड हटाने के बाद जब आप उन्हें जल्द ही नहीं जोड़ेंगे। चूंकि नए स्थान के लिए MySQL द्वारा फ्री स्पेस का उपयोग किया जाता है, जब हटाए गए और नए रिकॉर्ड में एक ही पंक्ति आकार होता है, तो कोई विकल्प आवश्यक नहीं होता है।
चेक तालिका केवल तभी उपयोग की जाती है जब आपको डेटा भ्रष्टाचार पर संदेह होता है (जो सामान्य रन के दौरान नहीं होना चाहिए)। कुछ लिनक्स वितरण (उदाहरण के लिए डेबियन) में स्टार्टअप स्क्रिप्ट हैं जो MySQL सर्वर स्टार्टअप पर सभी तालिकाओं के लिए चेक टेबल चलाते हैं। मरम्मत तालिका तब दूषित तालिकाओं की मरम्मत के लिए प्रयोग की जाती है।
विश्लेषण तालिका का उपयोग इंडेक्स कार्डिनिटी को अपडेट करने के लिए किया जा सकता है, जिसका उपयोग क्वेरी निष्पादन योजना को निर्धारित करने में किया जाता है। आम तौर पर केवल विशेष मामलों में इसकी आवश्यकता होती है।
यह आपके प्रश्न से स्पष्ट नहीं है कि आपकी आंकड़े सारणी कैसे उपयोग की जाती हैं ... कितने लिखते हैं, हटाते हैं और पढ़ते हैं? मेरी सांख्यिकीय तालिकाएं हर समय लिखती हैं, और एक दिन में यह पढ़ा जाता है, डेटा समेकित और अन्य तालिका में लिखा जाता है, फिर हटा दिया जाता है। ऐसे मामले में, OPTIMIZE चलाने की कोई आवश्यकता नहीं है क्योंकि डेटा अक्सर नहीं पढ़ा जाता है और नए डेटा के लिए फ्री स्पेस का पुन: उपयोग किया जाता है। मैं दिन के आधार पर विभाजन का उपयोग कर रहा हूं, इसलिए रिकॉर्ड्स को हटाने की बजाय (जो काफी धीमी है) मैं बस ड्रॉप पार्टिशन (जो 1 सेकंड अधिकतम लेता है)
टेबल हर रोज अपडेट किया जाता है कि के साथ समस्याओं को देख सकते हैं: वे MyISAM या InnoDB रहे हैं ??? – RolandoMySQLDBA