MySQL 大DML操作建议

本文提供了一系列优化策略,针对大数据量的INSERT、UPDATE和DELETE操作进行优化,包括使用多行插入、LOAD DATA INFILE、临时表、分散事务提交等方法。对于大数据量的UPDATE操作,先disable索引和相关约束,再通过SELECT变更字段、写入临时表、创建复合索引等步骤实现高效更新。此外,还提供了大数据量DELETE操作的优化技巧,如分区表和通过唯一标识批量删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     ㈠ 大数据量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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值