MySQL資料庫大DML操作建議

MySQL大DML操作建議

 

     ㈠ 大數據量INSERT

     

     ⑴ 使用多行插入代替單行:

 

insert into t values (),(),(),...

 

     

     ⑵

 LOAD DATA INFILE ... INTO TABLE t

 

     

     ⑶ 寫入臨時表、在 INSERT … SELECT 

     

     ⑷ 取消索引、約束,等數據加載完後在重建

     

     ⑸ INSERT時指定DELAYED屬性

     

     ⑹ 對於InnoDB、可以分散INSERT到多個事務、批量提交

     

     ㈡ 大數據量UPDATE

        

        這之前也應該disable掉索引和相關約束

        

     ① SELECT 唯一字段,變更字段

     ② 把結果集寫入臨時表

     ③ 為臨時表創建復合索引

     ④ 循環臨時表的每條記錄

     ⑤ 依據臨時表的唯一字段、更新目標表的變更字段

     

     ㈢ 大數據量DELETE

     

     ① 分區表

     ② 先把需要刪除的數據的唯一標識取到臨時表、遊標循環批量delete

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *