आपके पास एक ही डेटाबेस में MyISAM और InnoDB दोनों टेबल हो सकते हैं। हालांकि, आप पाएंगे कि जब बहुत बड़ी टेबल होती हैं, तो माईसाम टेबल-लॉक मुद्दों का कारण बनता है। यह अंततः क्या करता है, यह एक ही लेन-देन के लिए पूरी तालिका को लॉक कर देता है, जो कि बहुत खराब है यदि आपकी वेबसाइट का उपयोग करने वाले कई उपयोगकर्ता हैं। उदाहरण के लिए यदि आपकी साइट पर कोई उपयोगकर्ता कुछ खोज रहा है और क्वेरी को पूरा होने में कुछ मिनट लगते हैं, तो उस अवधि के दौरान कोई अन्य उपयोगकर्ता आपकी साइट का उपयोग नहीं कर सकता क्योंकि पूरी तालिका लॉक है।
दूसरी ओर InnoDB पंक्ति-स्तरीय लॉकिंग का उपयोग करता है, जिसका अर्थ है कि लेन-देन के दौरान वह पंक्ति तालिका से लॉक की गई एकमात्र पंक्ति है। InnoDB खोजों में धीमा हो सकता है क्योंकि यह MyISAM की तरह पूर्ण पाठ खोज की पेशकश नहीं करता है, लेकिन जब आप इसकी तुलना MyISAM के टेबल-लेवल लॉकिंग से करते हैं तो यह कोई बड़ी समस्या नहीं है। यदि आप कई बड़ी साइटों की तरह InnoDB का उपयोग करते हैं, तो आप Sphinx
जैसे सर्वर साइड सर्च इंजन का उपयोग कर सकते हैं। पूर्ण पाठ खोजों के लिए। या आप f00
. जैसी खोज करने के लिए MyISAM तालिका का उपयोग भी कर सकते हैं सुझाव दिया। मैंने व्यक्तिगत रूप से InnoDB की सिफारिश मुख्य रूप से पंक्ति-स्तरीय लॉकिंग सुविधा के कारण की थी, बल्कि इसलिए भी कि आप कई अन्य तरीकों से पूर्ण पाठ खोज को लागू कर सकते हैं।
मूल रूप से, यदि आपके पास बहुत सारे चयनों, आवेषणों के साथ-साथ अपडेट के साथ एक संदेश बोर्ड एप्लिकेशन है, तो InnoDB शायद आम तौर पर उपयुक्त विकल्प है। लेकिन अगर आप ऐसा कुछ नहीं बना रहे हैं (या पंजीकृत उपयोगकर्ताओं के साथ कोई अन्य चीज) और आपका काम ज्यादातर स्थिर सामग्री के साथ (या लिखने की तुलना में अधिक पढ़ता है), तो आप MyISAM का उपयोग कर सकते हैं।