चूंकि innodb_fle_per_table बंद है, आप तालिका नहीं देख सकते हैं और इसे प्रगति को माप सकते हैं।
मैंने MyISAM के लिए यह करने के बारे में एक पुरानी पोस्ट बनाई । यदि आप केवल और अगर innodb_file_per_table को सक्षम किया गया था और आप InnoDB अवसंरचना की खोज करते हैं, तो आप InnoDB के लिए ऐसा कर सकते हैं । यह अभी भी विचाराधीन फाइलों के आकार में ऑपरेटिंग सिस्टम को देखने की आवश्यकता है।
एक बार जब आप पूरी तरह से इनओबीडी क्लीनअप लागू कर लेते हैं और आपने innodb_file_per_table को सक्षम कर लिया है, तो आप निम्नानुसार इंडेक्स अपडेट करना चाहते हैं:
आपके पास निम्नलिखित हैं
- MySQL Instance with / var / lib / mysql datadir के रूप में
db.lotsofdata
20 मिलियन नामों के साथ बुलाया InnoDB तालिका :
तालिका इस तरह दिखती है:
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
, तो आप जानते हैं कि आप पूरा होने के करीब हैं।
BTW MariaDB में आंतरिक रूप से कार्यान्वित एक प्रगति स्थिति है ।