यह लेख MySQL में डेटाबेस इंजन के साथ काम करने का परिचय है।
इस आलेख में कुछ प्रक्रियाओं का पालन करने के लिए, आपके पास सर्वर तक रूट पहुंच होनी चाहिए।MySQL डेटाबेस इंजन के बारे में
डेटाबेस इंजन MySQL को डेटा के साथ काम करने और संसाधित करने के लिए अंतर्निहित कार्यक्षमता प्रदान करते हैं।
दो सबसे आम और लोकप्रिय MySQL डेटाबेस इंजन हैं MyISAM और InnoDB . MyISAM 5.5.5 से पहले के संस्करणों के लिए MySQL के लिए डिफ़ॉल्ट इंजन है, और अधिकांश परिदृश्यों में अच्छी तरह से कार्य करता है। हालाँकि, आपकी आवश्यकताओं के आधार पर, ऐसी परिस्थितियाँ होती हैं जहाँ एक अन्य डेटाबेस इंजन, जैसे कि InnoDB, बेहतर विकल्प हो सकता है। उदाहरण के लिए, InnoDB लेनदेन का समर्थन करता है, जबकि MyISAM नहीं करता है। InnoDB विदेशी कुंजियों के लिए भी समर्थन प्रदान करता है, जबकि MyISAM नहीं करता है।
यदि आपके पास अपने सर्वर तक रूट पहुंच है, तो MySQL विभिन्न डेटाबेस इंजनों का उपयोग कैसे और कब करता है, इस पर आपका पूरा नियंत्रण है। आप डिफ़ॉल्ट डेटाबेस इंजन को बदल सकते हैं, किसी विशिष्ट तालिका के डेटाबेस इंजन को बदल सकते हैं, और बहुत कुछ कर सकते हैं।
यह आलेख मानता है कि आप पहले से ही जानते हैं कि mysql . का उपयोग करके कमांड लाइन से MySQL तक कैसे पहुंचें कार्यक्रम। यदि आप नहीं जानते कि यह कैसे करना है, तो कृपया पहले इस लेख को पढ़ें।डिफ़ॉल्ट डेटाबेस इंजन का निर्धारण
अपनी स्थापना के लिए डिफ़ॉल्ट डेटाबेस इंजन निर्धारित करने के लिए, mysql> . पर निम्न आदेश टाइप करें संकेत:
SHOW ENGINES;
एक संक्षिप्त विवरण और प्रत्येक इंजन के लिए समर्थित सुविधाओं के साथ समर्थित इंजनों की एक सूची दिखाई देती है। डिफ़ॉल्ट डेटाबेस इंजन DEFAULT के रूप में चिह्नित है सहायता . में कॉलम।
डिफ़ॉल्ट डेटाबेस इंजन बदलना
आप अपने MySQL इंस्टॉलेशन के लिए डिफ़ॉल्ट डेटाबेस इंजन को बदल सकते हैं। ऐसा करने के बाद, आपके द्वारा बनाए गए सभी नए टेबल नए डेटाबेस इंजन का उपयोग करेंगे (जब तक कि आप टेबल निर्माण के दौरान इंजन को स्पष्ट रूप से सेट नहीं करते)।
डिफ़ॉल्ट डेटाबेस इंजन को बदलने के लिए, इन चरणों का पालन करें:
- my.cnf . खोलने के लिए अपने पसंदीदा टेक्स्ट एडिटर का उपयोग करें अपने सर्वर पर फ़ाइल। my.cnf . का स्थान फ़ाइल आपके Linux वितरण पर निर्भर करती है:
- CentOS और Fedora पर, my.cnf फ़ाइल /etc . में स्थित है निर्देशिका।
- डेबियन और उबंटू पर, my.cnf फ़ाइल /etc/mysql . में स्थित है निर्देशिका।
- my.cnf . में फ़ाइल, [mysqld] . का पता लगाएं अनुभाग।
-
[mysqld] . में निम्न पंक्ति जोड़ें या संशोधित करें खंड। इंजनबदलें उस इंजन के नाम के साथ जिसे आप डिफ़ॉल्ट के रूप में उपयोग करना चाहते हैं:
default-storage-engine=ENGINE
यदि आप अपने Linux वितरण के आधार पर InnoDB डेटाबेस इंजन को सक्षम कर रहे हैं, तो आपको my.cnf में निम्न पंक्ति को अक्षम करना पड़ सकता है फ़ाइल:
skip-innodb
ऐसा करने के लिए, बस एक पाउंड चिह्न जोड़ें (# ) पंक्ति की शुरुआत में, इस प्रकार है:
#skip-innodb
- परिवर्तनों को my.cnf . में सहेजें फ़ाइल, और फिर टेक्स्ट एडिटर से बाहर निकलें।
-
अपने Linux वितरण के लिए उपयुक्त कमांड का उपयोग करके MySQL सर्वर को पुनरारंभ करें:
- CentOS और Fedora के लिए, टाइप करें:
service mysqld restart
-
डेबियन और उबंटू के लिए, टाइप करें:
service mysql restart
- CentOS और Fedora के लिए, टाइप करें:
- नए डिफ़ॉल्ट डेटाबेस इंजन की पुष्टि करने के लिए, इंजन दिखाएं . का उपयोग करें डिफ़ॉल्ट डेटाबेस इंजन अनुभाग निर्धारित करने में वर्णित SQL कथन।
तालिका के वर्तमान डेटाबेस इंजन का निर्धारण
यह निर्धारित करने के लिए कि वर्तमान में डेटाबेस तालिका किस इंजन का उपयोग कर रही है, mysql> . पर निम्न कमांड टाइप करें संकेत देना। डेटाबेस बदलें उस डेटाबेस के नाम के साथ जिसे आप जांचना चाहते हैं:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';
यह कमांड डेटाबेस में प्रत्येक तालिका की एक सूची प्रदर्शित करता है, साथ ही प्रत्येक तालिका जिस इंजन का उपयोग कर रही है।
टेबल का डेटाबेस इंजन बदलना
आप पहले से मौजूद तालिका के लिए डेटाबेस इंजन को बदल सकते हैं। उदाहरण के लिए, निम्न SQL कथन दिखाता है कि myTable . नामक तालिका को कैसे संशोधित किया जाए InnoDB इंजन का उपयोग करने के लिए:
ALTER TABLE myTable ENGINE = InnoDB;
एक विशिष्ट डेटाबेस इंजन के साथ एक नई तालिका बनाना
जब आप किसी डेटाबेस में तालिका बनाते हैं, तो आप स्पष्ट रूप से इसके डेटाबेस इंजन को सेट कर सकते हैं (अन्यथा, MySQL तालिका निर्माण के दौरान डिफ़ॉल्ट डेटाबेस इंजन का उपयोग करता है)। उदाहरण के लिए, निम्न SQL कथन दिखाता है कि myTable . नामक तालिका कैसे बनाई जाती है जो MyISAM डेटाबेस इंजन का उपयोग करता है:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE MyISAM;
इसी तरह, InnoDB डेटाबेस इंजन का उपयोग करने वाली तालिका बनाने के लिए, आप निम्न SQL कथन का उपयोग कर सकते हैं:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE InnoDB;
अधिक जानकारी
- MyISAM इंजन के बारे में अधिक जानकारी के लिए, कृपया http://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html पर जाएं।
- InnoDB इंजन के बारे में अधिक जानकारी के लिए, कृपया http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html पर जाएं।