Mysql

監控 MySQL/innoDB 後處理

  • October 15, 2021

我做INSERT INTO SELECT了一張巨大的桌子(1TB)。該過程完成後,MySQL/InnoDB 仍會進行數小時的後處理(創建 更新的二級索引等)。

由於這些是內部流程,它們不會出現在SHOW PROCESSLISTor中SHOW ENGINE INNODB STATUS \G

我只能通過 I/O 活動來檢查程序。

有什麼方法可以正確監控正在進行的流程?

它可能將更改緩衝區合併到索引頁中。該手冊頁顯示了一些監視更改緩衝區大小及其進度的方法。

更改緩衝區合併導致的延遲 I/O 是正常的。

您可以在執行大 INSERT 之前禁用更改緩衝區(請參閱連結的手冊頁),但隨後您的 INSERT 將花費數小時,因為所有索引寫入都將是直寫的。

引用自:https://dba.stackexchange.com/questions/301127