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: রিড-হেভি, ফুল-টেক্সট সার্চ, নন-ট্রানজ্যাকশনাল ওয়ার্কলোডে ব্যবহার করা হয়।