যেহেতু ইনোডাব_ফ্লে_পার_সারণযোগ্য বন্ধ, আপনি টেবিলটি দেখতে এবং এটির অগ্রগতি পরিমাপ করতে পারবেন না।
মাইআইএসএএম-এর জন্য এটি কীভাবে করা যায় সে সম্পর্কে আমি পূর্ববর্তী পোস্ট করেছি । আপনি যদি InnoDB এর জন্য এটি করতে পারেন তবে এবং কেবল যদি ইনডোডিবি_ফিল_পিটার_সেবিল সক্ষম করা থাকে এবং আপনি InnoDB অবকাঠামো পুনর্নির্মাণ করেন । এটি এখনও প্রশ্নযুক্ত ফাইলের আকারে অপারেটিং সিস্টেমের সন্ধান প্রয়োজন।
আপনি একবার ইনোডিবি ক্লিনআপ পুরোপুরি কার্যকর করে নিলেন এবং ইনডোডবি_ফাইলে_পার_সামগ্রী সক্ষম হয়ে গেলে, আপনি সূচী আপডেটটি নিম্নলিখিতভাবে সম্পাদন করতে চাইতে পারেন:
উদাহরণস্বরূপ আপনার নিম্নলিখিত রয়েছে
- মাইএসকিউএল ইনস্ট্যান্স সহ / var / lib / mysql সাথে ডেটাডির হিসাবে
- InnoDB টেবিল
db.lotsofdata20 মিলিয়ন নাম সহ কল করা হয়েছে:
টেবিলটি এমন দেখাচ্ছে:
CREATE TABLE db.lotsofdata
(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30),
PRIMARY KEY (id)
) ENGINE=InnoDB;
মনে করুন আপনি একটি নাম সূচক তৈরি করতে চান। তুমি এটি করতে পারো:
CREATE TABLE db.lotsofdata_new LIKE db.lotsofdata;
ALTER TABLE db.lotsofdata_new ADD INDEX (name);
INSERT INTO db.lotsofdata_new SELECT * db.lotsofdata;
ALTER TABLE db.lotsofdata RENAME db.lotsofdata_old;
ALTER TABLE db.lotsofdata_new RENAME db.lotsofdata;
TRUNCATE TABLE db.lotsofdata_old;
ALTER TABLE db.lotsofdata_old ENGINE=InnoDB;
DROP TABLE db.lotsofdata_old;
INSERT চলমান অবস্থায় আপনি অপারেটিং সিস্টেমে যান এবং এটি চালান:
cd /var/lib/mysql/db
watch ls -l lotsofda*.ibd
এটি আপনাকে বর্তমান আকারের একটি তালিকা দেবে lotsofdata_new.ibd। যখন এটি এর চেয়ে বড় হয় lotsofdata.ibd, তখন আপনি জানেন যে আপনি সমাপ্তির কাছাকাছি।
বিটিডাব্লু মারিয়াডিবি অভ্যন্তরীণভাবে একটি অগ্রগতি স্থিতি প্রয়োগ করেছে ।