MySQL 大DML操作建议

Posted on 2013-07-26 19:06  冰天雪域  阅读(273)  评论(0编辑  收藏  举报

     ㈠ 大数据量INSERT
     
     ⑴ 使用多行插入代替单行:insert into t values (),(),(),...
     
     ⑵ LOAD DATA INFILE ... INTO TABLE t
     
     ⑶ 写入临时表、在 INSERT ... SELECT 
     
     ⑷ 取消索引、约束,等数据加载完后在重建
     
     ⑸ INSERT时指定DELAYED属性
     
     ⑹ 对于InnoDB、可以分散INSERT到多个事务、批量提交
     
     
     ㈡ 大数据量UPDATE
        
        这之前也应该disable掉索引和相关约束
        
     ① SELECT 唯一字段,变更字段
     ② 把结果集写入临时表
     ③ 为临时表创建复合索引
     ④ 循环临时表的每条记录
     ⑤ 依据临时表的唯一字段、更新目标表的变更字段
     
     
     ㈢ 大数据量DELETE
     
     ① 分区表

     ② 先把需要删除的数据的唯一标识取到临时表、游标循环批量delete

 

 

By DBA_WaterBin

2013-07-25

Good Luck

 

Copyright © 2024 冰天雪域
Powered by .NET 8.0 on Kubernetes