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

MySQL টেবিল বা ইন্ডেক্স রিবিল্ড বা রিপেয়ার করা


টেবিল এবং ইন্ডেক্সে পরিবর্তন বলতে 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
  1. HTML Tables

  2. MySQL-এ CREATE TABLE AS SELECT UNION দিয়ে দুটি টেবিল মার্জ

  3. MySQL-এ একক SELECT কোয়েরিতে দুটি টেবিল থেকে ডেটা ফেচ করা

  4. MySQL-ে ইনডেক্সসহ টেবিল তৈরি করা (CREATE INDEX)