InnoDB और MyISAM ("तालिका या डेटाबेस को डिज़ाइन करने के संबंध में" जिसके बारे में आपने पूछा था) के बीच मुख्य अंतर "संदर्भित अखंडता" और "लेन-देन" के लिए समर्थन हैं।
यदि आपको विदेशी कुंजी बाधाओं को लागू करने के लिए डेटाबेस की आवश्यकता है, या आपको लेन-देन का समर्थन करने के लिए डेटाबेस की आवश्यकता है (अर्थात दो या दो से अधिक डीएमएल संचालन द्वारा किए गए परिवर्तन कार्य की एकल इकाई के रूप में संभाले जाते हैं, सभी परिवर्तन या तो लागू होते हैं, या सभी परिवर्तन वापस किए जाते हैं) तब आप InnoDB इंजन को चुनेंगे, क्योंकि ये सुविधाएँ MyISAM इंजन से अनुपस्थित हैं।
वे दो सबसे बड़े अंतर हैं। एक और बड़ा अंतर समवर्ती है। MyISAM के साथ, DML स्टेटमेंट टेबल पर एक विशेष लॉक प्राप्त करेगा, और जब वह लॉक होता है, तो कोई अन्य सत्र टेबल पर SELECT या DML ऑपरेशन नहीं कर सकता है।
आपने जिन दो विशिष्ट इंजनों के बारे में पूछा (InnoDB और MyISAM) उनके अलग-अलग डिज़ाइन लक्ष्य हैं। MySQL के पास अपने स्वयं के डिज़ाइन लक्ष्यों के साथ अन्य स्टोरेज इंजन भी हैं।
इसलिए, InnoDB और MyISAM के बीच चयन करने में, पहला कदम यह निर्धारित करना है कि आपको InnoDB द्वारा प्रदान की जाने वाली सुविधाओं की आवश्यकता है या नहीं। यदि नहीं, तो MyISAM विचार के लिए तैयार है।
मतभेदों की एक अधिक विस्तृत चर्चा बल्कि अव्यावहारिक है (इस मंच में) समस्या स्थान की अधिक विस्तृत चर्चा अनुपस्थित है ... एप्लिकेशन डेटाबेस का उपयोग कैसे करेगा, कितनी टेबल, टेबल का आकार, लेनदेन लोड, चयन की मात्रा , सम्मिलित करें, अद्यतन करें, समवर्ती आवश्यकताएँ, प्रतिकृति सुविधाएँ, आदि।
डेटाबेस का तार्किक डिजाइन डेटा विश्लेषण और उपयोगकर्ता आवश्यकताओं के आसपास केंद्रित होना चाहिए; एक रिलेशनल डेटाबेस का उपयोग करने का विकल्प बाद में आएगा, और बाद में भी एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम के रूप में MySQL का चुनाव होगा, और फिर प्रत्येक टेबल के लिए स्टोरेज इंजन का चयन होगा।