Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में टेबल इंजन कैसे बदलें?

ALTER TABLE ... ENGINE कमांड

MySQL में किसी टेबल का स्टोरेज इंजन (Storage Engine) बदलने के लिए ALTER TABLE के साथ ENGINE क्लॉज का उपयोग करें।

सिंटैक्स

ALTER TABLE yourTableName ENGINE = yourEngineName;

उदाहरण: MyISAM से InnoDB में बदलें

1. MyISAM इंजन के साथ टेबल बनाएं

mysql> CREATE TABLE ChangeEngineTableDemo (
    -> MovieId INT,
    -> MovieName VARCHAR(100),
    -> IsPopular BOOL
    -> ) ENGINE = 'MyISAM';
Query OK, 0 rows affected (0.37 sec)

2. इंजन बदलें

mysql> ALTER TABLE ChangeEngineTableDemo ENGINE = InnoDB;
Query OK, 0 rows affected (2.21 sec)
Records: 0 Duplicates: 0 Warnings: 0

3. पुष्टि करें

mysql> SHOW CREATE TABLE ChangeEngineTableDemo;
+-----------------------+----------------------------------------------------------------------------------------------------------------------------------+
| Table                 | Create Table                                                                                                                     |
+-----------------------+----------------------------------------------------------------------------------------------------------------------------------+
| ChangeEngineTableDemo | CREATE TABLE `changeenginetabledemo` ( `MovieId` int(11) DEFAULT NULL, `MovieName` varchar(100) DEFAULT NULL, `IsPopular` tinyint(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-----------------------+----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.03 sec)

परिणाम: आउटपुट में ENGINE=InnoDB दिख रहा है - इंजन सफलतापूर्वक बदल दिया गया।

सामान्य स्टोरेज इंजन

इंजनविशेषताएंउपयोग
InnoDBट्रांजैक्शन, विदेशी कुंजी, पंक्ति-स्तरीय लॉकिंग, क्रैश रिकवरीडिफ़ॉल्ट, सामान्य उपयोग, उत्पादन
MyISAMतेज पढ़ना, पूर्ण-पाठ खोज (पुराना), कोई ट्रांजैक्शन नहीं, टेबल-स्तरीय लॉककेवल-पढ़ना, लॉगिंग, पुराने ऐप्स
MEMORYरैम में स्टोर, बहुत तेज, सर्वर रीस्टार्ट पर डेटा खो जाता हैकैश, अस्थायी गणना
CSVCSV फ़ाइल के रूप में स्टोरडेटा एक्सचेंज

महत्वपूर्ण विचार

  • डाउनटाइम: बड़ी टेबल पर इंजन बदलने में समय लगता है (टेबल पुनर्निर्माण होता है)
  • फीचर हानि: InnoDB → MyISAM जाने पर ट्रांजैक्शन/विदेशी कुंजी समर्थन खो जाता है
  • ENGINE=InnoDB MySQL 5.5+ में डिफ़ॉल्ट है
  • इंजन बदलने से AUTO_INCREMENT मान रीसेट हो सकता है

सभी टेबल्स का इंजन देखें

SELECT TABLE_NAME, ENGINE 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'your_database';
  1. MySQL टेबल MyISAM या InnoDB इंजन उपयोग कर रही है कैसे जानें? MySQL टेबल MyISAM या InnoDB इंजन उपयोग कर रही है कैसे जानें?

    SHOW TABLE STATUS से टेबल स्टोरेज इंजन जांचें किसी टेबल का स्टोरेज इंजन (MyISAM, InnoDB, आदि) जानने के लिए SHOW TABLE STATUS का उपयोग करें। विशिष्ट टेबल के लिए SHOW TABLE STATUS FROM डेटाबेस_नाम LIKE टेबल_नाम; उदाहरण: business डेटाबेस में student टेबल SHOW TABLE STATUS FROM business LIKE studen

  1. - MySQL में DATE_ADD से तारीख में वर्ष जोड़ें

    UPDATE और DATE_ADD() से मौजूदा तारीखों में अंतराल जोड़ें मौजूदा तारीख कॉलम में वर्ष (या अन्य अंतराल) जोड़ने के लिए UPDATE के साथ DATE_ADD() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec) mysql> insert into

  1. - MySQL में टेबल के अस्तित्व का पता कैसे लगाएं

    समाधान INFORMATION_SCHEMA.TABLES का उपयोग करें। सिंटैक्स SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = yourTableName; उदाहरण टेबल बनाएं: ); जांच क्वेरी WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = DemoTable2032; परिणाम +---------------+ |