MyISAM तालिकाओं को क्रैश करना बहुत आसान है। प्रत्येक तालिका में हेडर जानकारी होती है जो यह ट्रैक करती है कि एक MyISAM तालिका में कितनी खुली फ़ाइल हैंडल करती है।
यदि mysqld क्रैश हो जाता है, तो कोई भी MyISAM तालिका जिसमें खुली फ़ाइल हैंडल होती है, उसे कभी भी प्रत्येक फ़ाइल हैंडल बंद होने पर फ़ाइल हैंडल की संख्या को कम करने का अवसर नहीं मिलता है। इस प्रकार, यदि कोई नया फ़ाइल हैंडल एक MyISAM तालिका (.MYD फ़ाइल) खोलता है और mysqld फ़ाइल हैंडल की संख्या के बीच एक बेमेल का पता लगाता है जिसे MyISAM तालिका मानती है कि खुला है और MyISAM तालिका में फ़ाइल की संख्या वास्तव में खुली है, तो तालिका है दुर्घटनाग्रस्त घोषित किया गया।
इसे संभालने के लिए चार (4) तरीके हैं:
विधि #1 :स्वचालित MyISAM मरम्मत सेटअप करें
मेरी पोस्ट देखें https://dba.stackexchange.com/a/15079/877 इसे MySQL रीस्टार्ट पर कैसे सेट करें (मार्च 15, 2012)
विधि #2 :MyISAM के बजाय InnoDB का उपयोग करें
InnoDB में स्टोरेज इंजन के इनिशियलाइज़ेशन में निर्मित क्रैश रिकवरी है। माईसाम नहीं करता
विधि #3 :MyISAM के बजाय Aria का उपयोग करें
एरिया माईसाम के लिए मारियाडीबी का ड्रॉप-इन प्रतिस्थापन है। इसमें अलग-अलग टेबल के लिए क्रैश रिकवरी मैकेनिज्म है।
विधि #4 :mysqld पर -9 को न मारें
यदि जानबूझकर या अनजाने में mysqld क्रैश हो जाता है, तो सभी खुले MyISAM तालिकाओं के लिए हेडर जानकारी उन्हें क्रैश स्थिति में ले जाएगी। mysqld को मैन्युअल रूप से बंद करने से बचें।