Karena innodb_fle_per_table OFF, Anda tidak bisa melihat tabel dan mengukur progresnya.
Saya membuat posting sebelumnya tentang bagaimana melakukan ini untuk MyISAM . Anda dapat melakukan ini untuk InnoDB jika dan hanya jika innodb_file_per_table diaktifkan dan Anda menata ulang infrastruktur InnoDB . Masih membutuhkan melihat dalam sistem operasi pada ukuran file yang dimaksud.
Setelah Anda menerapkan Pembersihan InnoDB sepenuhnya dan Anda telah mengaktifkan innodb_file_per_table, Anda mungkin ingin melakukan pembaruan indeks sebagai berikut:
CONTOH Anda memiliki yang berikut ini
- MySQL Instance dengan / var / lib / mysql sebagai datadir
- Tabel InnoDB dipanggil
db.lotsofdatadengan 20 juta nama:
Tabelnya terlihat seperti ini:
CREATE TABLE db.lotsofdata
(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30),
PRIMARY KEY (id)
) ENGINE=InnoDB;
Misalkan Anda ingin membuat indeks nama. Kamu bisa melakukan ini:
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;
Saat INSERT berjalan, Anda masuk ke sistem operasi dan menjalankan ini:
cd /var/lib/mysql/db
watch ls -l lotsofda*.ibd
Ini akan memberi Anda daftar ukuran saat ini lotsofdata_new.ibd. Ketika itu menjadi lebih besar dari lotsofdata.ibd, maka Anda tahu bahwa Anda hampir selesai.
BTW MariaDB memiliki Status Kemajuan yang diterapkan secara internal .