MySQL 大DML操作建议

2014-11-24 17:50:15 · 作者: · 浏览: 1

㈠ 大数据量INSERT


⑴ 使用多行插入代替单行:insert into t values (),(),(),...


⑵ LOAD DATA INFILE ... INTO TABLE t


⑶ 写入临时表、在 INSERT ... SELECT


⑷ 取消索引、约束,等数据加载完后在重建


⑸ INSERT时指定DELAYED属性


⑹ 对于InnoDB、可以分散INSERT到多个事务、批量提交


㈡ 大数据量UPDATE


这之前也应该disable掉索引和相关约束


① SELECT 唯一字段,变更字段


② 把结果集写入临时表


③ 为临时表创建复合索引


④ 循环临时表的每条记录


⑤ 依据临时表的唯一字段、更新目标表的变更字段


㈢ 大数据量DELETE


① 分区表


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


推荐阅读: