तालिका लॉकिंग समस्याओं को रोकने के लिए आपको सभी डेटा को InnoDB में कनवर्ट करना चाहिए। हालाँकि, यहाँ सोचने के लिए कुछ बातें हैं:
पूर्ण अनुक्रमण
वर्तमान में, केवल MyISAM FULLTEXT इंडेक्सिंग का समर्थन करता है। InnoDB के लिए पूर्ण अनुक्रमणिका वर्तमान में MySQL 5.6 के लिए काम कर रही है, लेकिन उत्पादन के लिए तैयार नहीं है । यदि आपके पास कोई Drupal टेबल है जिसमें FULLTEXT इंडेक्स हैं, तो उन्हें इस समय InnoDB में नहीं बदला जा सकता है।
पूर्ण अनुक्रमण पर अद्यतन
MySQL 5.6 अब GA (उत्पादन उपयोग के लिए) है। कृपया InnoDB में FULLTEXT अनुक्रमणिका आज़माएँ।
उन तालिकाओं को खोजने के लिए जिनके पास एक FULLTEXT
सूचकांक है, इस क्वेरी को चलाएं:
SELECT table_schema,table_name
FROM information_schema.statistics
WHERE index_type='FULLTEXT';
यदि कोई पंक्तियाँ वापस नहीं आती हैं, तो सभी InnoDB तालिकाओं को अपने दिल की सामग्री में परिवर्तित करें। मैंने केवल Mysql का उपयोग करके सभी MyISAM तालिकाओं को InnoDB में परिवर्तित करने के बारे में एक पुरानी पोस्ट लिखी थी ।
MySQL प्रतिकृति
यदि आपके पास एक भारी-भरकम वातावरण है, तो यदि आप निम्न कार्य करते हैं, तो रीडिंग MyISAM में तेजी से जा सकती है:
- सेटअप मास्टर / दास प्रतिकृति
- एक या अधिक पढ़ें मास्टर के तहत दास पढ़ें
--skip-innodb
सभी स्लेव पर /etc/my.cnf में जोड़ें (स्लेव में डेटा लोड करने पर तालिकाओं को MyISAM में कनवर्ट करता है)
- इस आदेश के अनुसार प्रत्येक गुलाम के सभी माईसम टेबल के पंक्ति प्रारूप को FIXED में बदलें:
ALTER TABLE tblname ROW_FORMAT=FIXED;
- मैंने इस पर DBA StackExchange में कुछ पोस्ट किया
- पुस्तक MySQL डाटाबेस डिजाइन और ट्यूनिंग
ROW_FORMAT=FIXED
72,73 पृष्ठों पर उपयोग करने की सिफारिश करता है। यह आंतरिक रूप से VARCHAR के सभी क्षेत्रों को CHAR में बदल देगा। यह MyISAM तालिका को बड़ा बना देगा, लेकिन इसके खिलाफ चयन निष्पादित बहुत तेज हो जाएगा। मैं व्यक्तिगत रूप से इस पर ध्यान दे सकता हूं। मेरे पास एक बार एक टेबल थी जो 1.9GB की थी। मैंने प्रारूप बदल दिया ALTER TABLE tblname ROW_FORMAT=FIXED
। तालिका 3.7GB तक समाप्त हो गई। इसके खिलाफ चयनों की गति 20-25% तेज थी, बिना किसी और सुधार या परिवर्तन के।
इसके साथ एकमात्र सिरदर्द आपके एप्लिकेशन को अलग-अलग रीड स्लेव से अवगत करा रहा है।
उपसंहार
यदि आप प्रत्येक भंडारण इंजन के अन्य लाभों को देख रहे हैं, तो DBA StackExchange की जाँच करें: