MySQL大DML操作建議 ㈠ 大數據量INSERT ⑴ 使用多行插入代替單行:
insert into t values (),(),(),...
⑵
LOAD DATA INFILE ... INTO TABLE t
⑶ 寫入臨時表、在 INSERT ... SELECT ⑷ 取消索引、約束,等數據加載完後在重建 ⑸ INSERT時指定DELAYED屬性 ⑹ 對於InnoDB、可以分散INSERT到多個事務、批量提交 ㈡ 大數據量UPDATE 這之前也應該disable掉索引和相關約束 ① SELECT 唯一字段,變更字段 ② 把結果集寫入臨時表 ③ 為臨時表創建復合索引 ④ 循環臨時表的每條記錄 ⑤ 依據臨時表的唯一字段、更新目標表的變更字段 ㈢ 大數據量DELETE ① 分區表 ② 先把需要刪除的數據的唯一標識取到臨時表、游標循環批量delete