
最佳化MySQL Load Data Infile 加速匯入
使用「Load data infile」將海量資料集匯入MySQL 時,使用者常會遇到效能瓶頸。本文探討了加速導入過程的方法,特別是對於具有多個鍵的大型 InnoDB 表。
加速導入
要最佳化導入速度,請考慮以下事項:
- 主鍵排序:對CSV檔案進行排序order 作為目標表的主鍵。這透過利用 InnoDB 的聚集主鍵來優化導入過程。
- 截斷和自動提交:在載入資料之前截斷表並停用自動提交以提高效能。
- 資料庫設定最佳化: 暫時停用唯一檢查、外鍵檢查和二進位日誌記錄以減少
- 分塊載入:將CSV 檔案分割成更小的區塊,以最大限度地減少記憶體需求並減少鎖爭用。
最佳化導入語法範例:
truncate
;
set autocommit = 0;
load data infile into table ...
commit;
set autocommit = 1;
set unique_checks = 1;
set foreign_key_checks = 1;
set sql_log_bin=1;查詢終止,沒有重新啟動
此命令透過進程ID 來終止指定進程,該進程ID 可以從show processlist 命令。 kill <process_id>;</process_id>
以上是如何優化 MySQL 載入資料檔以加快導入速度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!