কম্পিউটার টিউটোরিয়াল

MySQL-এ MyISAM থেকে InnoDB স্টোরেজ ইঞ্জিনে কনভার্ট করা

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';

আউটপুট:

+-------------------------+--------+
| TABLE_NAME              | ENGINE |
+-------------------------+--------+
| studentrecordwithmyisam | MyISAM |
+-------------------------+--------+
1 row in set (0.00 sec)

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)

সতর্কতা: কনভারশন সময় টেবিল লক থাকে (MySQL 5.6+ এ অনলাইন DDL ব্যবহার হয় কিন্তু লক প্রয়োজন)। বড় টেবিলের জন্য `pt-online-schema-change` (Percona Toolkit) বা `gh-ost` ব্যবহার করুন। ফরেন কি, ট্রানজেকশন সাপোর্ট পাওয়ার জন্য InnoDB প্রিয়।

  1. MySQL-এ টেবিল MyISAM নাকি InnoDB ইঞ্জিন ব্যবহার করছে তা জানা

  2. MySQL-এ InnoDB স্টোরেজ ইঞ্জিন সক্ষম/ইনস্টল করা (my.ini বা ENGINE=InnoDB)

  3. MySQL-এ InnoDB ডিফল্টভাবে সক্রিয় কি না?

  4. MySQL-এ STR_TO_DATE() ব্যবহার করে ডেট ফরম্যাট কনভার্ট করা