首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 批量插入優化:單條 INSERT vs 多值 INSERT 百萬級數據實測

     編輯:MySQL 資料庫相關知識

優化前:逐條插入

INSERT INTO tbl (mobile) VALUES (138000000);
INSERT INTO tbl (mobile) VALUES (138000001);
-- 重複 10 萬次

半小時僅入 2 萬條。

優化後:單語句多值插入

INSERT INTO tbl (mobile) VALUES (138000000), (138000001), (138000002), ...;

12 萬條含 PHP 處理僅 6 秒,提升 300 倍。

核心原理

  • 減少網絡往返與解析開銷
  • 單次事務提交,減少 redo log 刷盤
  • InnoDB 批量插入可觸發 change buffer 合併寫入

最佳實踐建議

  • 每批 500~2000 行,避免單條 SQL 過大超過 max_allowed_packet
  • 配合 SET autocommit=0; ... COMMIT; 顯式事務
  • 若有唯一鍵衝突,考慮 INSERT IGNORE 或 ON DUPLICATE KEY UPDATE
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved