我有一個巨大的 mysqldump 檔案(~700GB),我想在另一台伺服器上恢復它。對於最初的 GB,導入速度相當快,大約是 MB/s,但在一些 GB 的資料之後,速度會下降到 50kb/s 到 200kb/s 之間。
mysqldump 的參數是--skip-comments --no-create-info --no-autocommit --quick --extended-insert --insert-ignore --compress
,因此已經完成了一些速度改進.
匯入是透過pv /file.sql | 完成的mysql -u 使用者 DB
我還運行了 mysqltuner 並改進了其中的一些設定。
我想知道:這麼大的 mysqldump 一段時間後速度變慢是常見的嗎?或者有什麼可以進一步改進的地方嗎?
匯入大量資料時,應停用以下功能。
因為每次插入時,資料庫都會檢查插入記錄在其他表中的關係。隨著桌子變得越來越大,這個過程開始減慢。每次插入期間,資料庫也會對該表的索引執行額外的插入操作或執行插入觸發器。
另外,由於MySQL中的事務很弱,所以需要工作,以便commit不是每次插入後都工作,可以使用commit指令,例如每10000筆記錄插入後一次。