एक डेटाबेस में मिश्रित स्टोरेज इंजन
हां, आप एक ही डेटाबेस में InnoDB और MyISAM दोनों टेबल्स बना सकते हैं। यह पूरी तरह से समर्थित और अनुशंसित तरीका है।
उदाहरण: डेटाबेस और दोनों टाइप की टेबल्स बनाना
mysql> CREATE DATABASE BothInnoDBandMyISAM; mysql> USE BothInnoDBandMyISAM;
InnoDB टेबल
mysql> CREATE TABLE Student (
-> StudentId INT,
-> StudentName VARCHAR(20)
-> ) ENGINE=InnoDB;
MyISAM टेबल
mysql> CREATE TABLE Employee (
-> EmployeeId INT,
-> EmployeeName VARCHAR(30)
-> ) ENGINE=MyISAM;
इंजन टाइप वेरीफाई करना
mysql> SELECT ENGINE FROM information_schema.tables
-> WHERE table_name = 'Student' AND table_schema = 'BothInnoDBandMyISAM';
+--------+ | ENGINE | +--------+ | InnoDB | +--------+
mysql> SELECT ENGINE FROM information_schema.tables
-> WHERE table_name = 'Employee' AND table_schema = 'BothInnoDBandMyISAM';
+--------+ | ENGINE | +--------+ | MyISAM | +--------+
कब कौन सा इंजन चुनें
| विशेषता | InnoDB | MyISAM |
|---|---|---|
| ट्रांजैक्शन (ACID) | हां | नहीं |
| फॉरेन की | हां | नहीं |
| रो-लेवल लॉकिंग | हां | नहीं (टेबल-लेवल) |
| फुलटेक्स्ट सर्च | हां (5.6+) | हां |
| क्रैश रिकवरी | बेहतर | सीमित |
आधुनिक एप्लिकेशन्स के लिए InnoDB डिफ़ॉल्ट और अनुशंसित है। MyISAM केवल पढ़ने-हेवी, नॉन-ट्रांजैक्शनल वर्कलोड्स के लिए उपयोगी हो सकता है।