mysql大dml操作建议
㈠ 大数据量insert
⑴ 使用多行插入代替单行:
insert into t values (),(),(),...
⑵ load data infile ... into table t
⑶ 写入临时表、在 insert ... select
⑷ 取消索引、约束,等数据加载完后在重建
⑸ insert时指定delayed属性
⑹ 对于innodb、可以分散insert到多个事务、批量提交
㈡ 大数据量update
这之前也应该disable掉索引和相关约束
① select 唯一字段,变更字段
② 把结果集写入临时表
③ 为临时表创建复合索引
④ 循环临时表的每条记录
⑤ 依据临时表的唯一字段、更新目标表的变更字段
㈢ 大数据量delete
① 分区表
② 先把需要删除的数据的唯一标识取到临时表、游标循环批量delete
bitscn.com
