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

MySQL-এ MyISAM vs InnoDB: তুলনা ও ইঞ্জিন পরিবর্তন

MySQL-এ দুটি প্রধান স্টোরেজ ইঞ্জিন: InnoDB (ডিফল্ট, ট্রানজ্যাকশন, ফরেন কি, ROW-লেভেল লক) এবং MyISAM (পুরনো, টেবিল-লেভেল লক, ফুল-টেক্সট সার্চ সমর্থন করে)۔

বর্তমান ইঞ্জিন দেখা

mysql> USE business;
mysql> SHOW TABLE STATUS;

আউটপুটে Engine কলামে InnoDB দেখা যাবে (MySQL 8.0.12-এ ডিফল্ট)।

ইঞ্জিন পরিবর্তন (InnoDB → MyISAM)

mysql> SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' ENGINE=MyISAM;')
-> FROM INFORMATION_SCHEMA.TABLES
-> WHERE TABLE_SCHEMA = 'sample' AND ENGINE = 'InnoDB' AND TABLE_TYPE = 'BASE TABLE';

এই কুয়েরি ALTER TABLE স্টেটমেন্ট জেনারেট করবে, যা রান করলে ইঞ্জিন পরিবর্তন হবে।

কোনটি বেছে নেবেন?

  • InnoDB: প্রোডাকশন, ট্রানজ্যাকশন, ফরেন কি, কাঙ্কারেন্সি - সব ক্ষেত্রে পছন্দনীয়।
  • MyISAM: রিড-হেভি, ফুল-টেক্সট সার্চ, নন-ট্রানজ্যাকশনাল ওয়ার্কলোডে ব্যবহার করা হয়।
  1. MySQL-এ টেবিল MyISAM নাকি InnoDB ইঞ্জিন ব্যবহার করছে তা জানা

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

  3. MySQL-এ DEFAULT NULL যোগ করা আবশ্যক কিনা?

  4. MySQL-এ টেবিল ইঞ্জিন InnoDB থেকে MyISAM-এ পরিবর্তন করা