İnnodb_fle_per_table KAPALI olduğundan, tabloyu göremez ve ilerlemesini ölçemezsiniz.
MyISAM için bunun nasıl yapılacağı hakkında daha önce bir yazı yaptım . Bunu InnoDB için ancak yalnızca innodb_file_per_table etkinleştirilmişse ve InnoDB altyapısını yeniden ararsanız yapabilirsiniz . Yine de işletim sisteminde söz konusu dosyaların boyutlarına bakmayı gerektirir.
InnoDB Cleanup uygulamasını tam olarak uyguladıktan ve innodb_file_per_table özelliğini etkinleştirdikten sonra, dizin güncellemesini aşağıdaki gibi gerçekleştirmek isteyebilirsiniz:
EXAMPLE aşağıdakilere sahip
- Datadir olarak / var / lib / mysql ile MySQL Örneği
- InnoDB tablosu
db.lotsofdata
20 milyon adla çağrıldı :
Tablo şöyle:
CREATE TABLE db.lotsofdata
(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30),
PRIMARY KEY (id)
) ENGINE=InnoDB;
Bir ad dizini oluşturmak istediğinizi varsayalım. Bunu yapabilirsiniz:
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 çalışırken, işletim sistemine girip şunu çalıştırırsınız:
cd /var/lib/mysql/db
watch ls -l lotsofda*.ibd
Bu size geçerli boyutunun bir listesini verecektir lotsofdata_new.ibd
. Daha büyük olduğunda lotsofdata.ibd
, tamamlanmaya yakın olduğunuzu bilirsiniz.
BTW MariaDB'nin dahili olarak İlerleme Durumu vardır .