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