搜尋

首頁  >  問答  >  主體

有沒有辦法改善 MySQL 導入隨時間變慢的效能?

我有一個巨大的 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 一段時間後速度變慢是常見的嗎?或者有什麼可以進一步改進的地方嗎?

P粉969253139P粉969253139325 天前565

全部回覆(1)我來回復

  • P粉201448898

    P粉2014488982024-01-06 08:18:50

    匯入大量資料時,應停用以下功能。

    1. 禁用觸發器
    2. 禁用索引
    3. 禁用約束或檢查
    4. 禁用外鍵

    因為每次插入時,資料庫都會檢查插入記錄在其他表中的關係。隨著桌子變得越來越大,這個過程開始減慢。每次插入期間,資料庫也會對該表的索引執行額外的插入操作或執行插入觸發器。

    另外,由於MySQL中的事務很弱,所以需要工作,以便commit不是每次插入後都工作,可以使用commit指令,例如每10000筆記錄插入後一次。

    回覆
    0
  • 取消回覆