有沒有辦法改善 MySQL 導入隨時間變慢的效能?
P粉969253139
P粉969253139 2024-01-05 09:41:52
0
1
506

我有一個巨大的 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粉969253139
P粉969253139

全部回覆(1)
P粉201448898

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

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

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

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!