Mysql
監控 MySQL/innoDB 後處理
我做
INSERT INTO SELECT
了一張巨大的桌子(1TB)。該過程完成後,MySQL/InnoDB 仍會進行數小時的後處理(創建 更新的二級索引等)。由於這些是內部流程,它們不會出現在
SHOW PROCESSLIST
or中SHOW ENGINE INNODB STATUS \G
。我只能通過 I/O 活動來檢查程序。
有什麼方法可以正確監控正在進行的流程?
它可能將更改緩衝區合併到索引頁中。該手冊頁顯示了一些監視更改緩衝區大小及其進度的方法。
更改緩衝區合併導致的延遲 I/O 是正常的。
您可以在執行大 INSERT 之前禁用更改緩衝區(請參閱連結的手冊頁),但隨後您的 INSERT 將花費數小時,因為所有索引寫入都將是直寫的。