हां, आप माईसाम पर स्विच कर सकते हैं। लेकिन यह जरूरी नहीं कि एक अच्छा विचार हो:
- MyISAM लेन-देन का समर्थन नहीं करता
- MyISAM तालिकाओं को अक्सर
REPAIR
की आवश्यकता होती है दुर्घटना के बाद
एक InnoDB तालिका प्रति पंक्ति 8KB से अधिक संभाल सकती है। स्पष्ट रूप से आप एक दर्जन या अधिक टेक्स्ट/ब्लॉब कॉलम होने से समस्या में भाग गए? एक कॉलम के अधिकतम 767 बाइट्स पंक्ति के मुख्य भाग में संग्रहीत होते हैं; बाकी को एक अलग ब्लॉक में रखा गया है।
मुझे लगता है कि एक ROW_FORMAT
सभी बड़े स्तंभों को एक अलग ब्लॉक में डाल देगा, केवल 20 बाइट पीछे छोड़कर उस पर इंगित करने के लिए।
विस्तृत पंक्तियों के लिए एक अन्य दृष्टिकोण "ऊर्ध्वाधर विभाजन" करना है। यानी, PRIMARY KEY
. से मेल खाने वाली एक और टेबल (या टेबल) बनाएं और कुछ बड़े कॉलम। कम आबादी वाले कॉलम को ऐसी तालिका में ले जाना विशेष रूप से आसान है, फिर उस तालिका में कम पंक्तियां हों, और LEFT JOIN
का उपयोग करें डेटा लाने के लिए। इसके अलावा, यदि आपके पास कुछ कॉलम हैं जिनकी आपको शायद ही कभी SELECT
की आवश्यकता होती है , तो वे आगे बढ़ने के लिए अच्छे उम्मीदवार हैं -- नहीं JOIN
जब आपको उन स्तंभों की आवश्यकता नहीं होती है।