MyISAM इंजन को InnoDB में बदलने के लिए, हम ALTER कमांड का उपयोग कर सकते हैं। आइए अब MyISAM इंजन की मदद से एक टेबल बनाते हैं।
mysql> create table MyISAMToInnoDBDemo -> ( -> id int, -> Name varchar(100) -> )ENGINE=MyISAM; Query OK, 0 rows affected (0.19 sec)
जांचने के लिए कि टेबल MyISAM इंजन के साथ बनाई गई है या नहीं।
mysql> SELECT TABLE_NAME,ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'business' and ENGINE = 'MyISAM';
निम्नलिखित आउटपुट MyISAM इंजन के साथ बनाई गई टेबल को दर्शाता है।
+-------------------------+--------+ | TABLE_NAME | ENGINE | +-------------------------+--------+ | studentrecordwithmyisam | MyISAM | +-------------------------+--------+ 1 row in set (0.00 sec)
हम ALTER कमांड की मदद से MyISAM को InnoDB में बदल सकते हैं।
mysql> alter table MyISAMToInnoDBDemo engine=InnoDB; Query OK, 0 rows affected (1.65 sec) Records: 0 Duplicates: 0 Warnings: 0
रूपांतरण की जांच करने के लिए।
mysql> SELECT TABLE_NAME,ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'test' and ENGINE = 'InnoDB';
यहां आउटपुट है।
+--------------------+--------+ | TABLE_NAME | ENGINE | +--------------------+--------+ | myisamtoinnodbdemo | InnoDB | +--------------------+--------+ 1 row in set (0.00 sec)
महत्वपूर्ण नोट:ALTER TABLE ... ENGINE=InnoDBटेबल को रीबिल्ड करता है, जो बड़ी टेबल्स के लिए समय ले सकता है और लॉकिंग का कारण बन सकता है। MySQL 5.6+ मेंALGORITHM=INPLACE(डिफ़ॉल्ट) ऑनलाइन DDL का उपयोग करता है, लेकिन फिर भी एक विशेष लॉक की आवश्यकता होती है। उत्पादन वातावरण मेंpt-online-schema-change(Percona Toolkit) का उपयोग करने पर विचार करें।