從文本文件批量導入,繞過 SQL 解析層,直接寫入存儲引擎。
INSERT INTO t (a,b) VALUES (1,2), (3,4), (5,6);
比單行 INSERT 快數倍。調大 bulk_insert_buffer_size 可進一步提升對含索引表的批量插入速度。
concurrent_insert:0=禁用,1=預設(表尾無洞時並行),2=總是允許表尾並行(即使中間有刪除產生的洞)。DELETE 產生的空洞(或設為 2),且為 MyISAM 引擎。LOCK TABLES t WRITE; INSERT INTO t ...; -- 多條 INSERT INSERT INTO t ...; UNLOCK TABLES;
UNLOCK TABLES 時刷盤一次,避免每條 INSERT 都刷盤。INSERT ... VALUES (),(),() 則無需顯式鎖表。InnoDB 等事務引擎請用 START TRANSACTION / COMMIT 替代 LOCK TABLES。