টেবিল এবং ইন্ডেক্সে পরিবর্তন বলতে MySQL কীভাবে ডেটা টাইপ এবং ক্যাটেক্টার সেট হ্যান্ডেল করে সেটি বোঝায়। প্রয়োজনীয় টেবিল রিপেয়ার বা আপগ্রেড CHECK TABLE, mysqlcheck, বা mysql_upgrade দ্বারা রিপোর্ট করা হয়।
টেবিল রিবিল্ড করার পদ্ধতিগুলো
- Dump and Reload Method
- ALTER TABLE Method
- REPAIR TABLE Method
Dump and Reload Method
যদি টেবিল রিবিল্ড করতে হয় কারণ MySQL-এর ভিন্ন ভার্সন বাইনারি (ইন-প্লেস) আপগ্রেড বা ডাউনলোডের পর টেবিল হ্যান্ডেল করতে পারে না, তবে এই মেথড ব্যবহার করুন।
mysqldump দিয়ে ডাম্প ফাইল তৈরি করে এবং mysql-এ রিলোড করুন:
mysqldump db_name t1 > dump.sql mysql db_name < dump.sql
একটি ডেটাবেসের সব টেবিল রিবিল্ড করতে হলে ডেটাবেসের নাম দিন টেবিল নাম ছাড়া:
mysqldump db_name > dump.sql mysql db_name < dump.sql
সকল ডেটাবেসের সব টেবিল রিবিল্ড করতে হলে --all-databases অপশন ব্যবহার করুন:
mysqldump --all-databases > dump.sql mysql < dump.sql
ALTER TABLE Method
ALTER TABLE মেথড দিয়ে টেবিল রিবিল্ড করতে "null" ал্টেরেশন ব্যবহার করুন। ALTER TABLE স্টেটমেন্ট দিয়ে টেবিল পরিবর্তন করুন যাতে সেটি স্টোরেজ ইঞ্জিন ব্যবহার করতে পারে। উদাহরণ: TblName একটি InnoDB টেবিল হলে নিচের স্টেটমেন্ট দিয়ে রিবিল্ড করুন:
ALTER TABLE TblName ENGINE = InnoDB;
REPAIR TABLE Method
REPAIR TABLE মেথড শুধু MyISAM, ARCHIVE, এবং CSV টেবিলের জন্য প্রযোজ্য। টেবিল চেকিং অপারেশন যদি সাজেস্ট করে যে ফাইল করাপ্ট হয়েছে বা আপগ্রেড দরকার, তবে REPAIR TABLE স্টেটমেন্ট ব্যবহার করুন। উদাহরণ: MyISAM টেবিল রিপেয়ার করতে:
REPAIR TABLE TblName;
mysqlcheck --repair কমান্ড-লাইন অ্যাক্সেস দেয় REPAIR TABLE স্টেটমেন্টে। এটি আরও সুবিধাজনক কারণ --databases দিয়ে নির্দিষ্ট ডেটাবেসের টেবিল বা --all-databases দিয়ে সকল ডেটাবেসের সকল টেবিল রিপেয়ার করা যায়:
mysqlcheck --repair --databases db_name ... mysqlcheck --repair --all-databases