欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MySQL 大DML操作建议

程序员文章站 2022-04-17 08:50:00
...

㈠ 大数据量INSERT ⑴ 使用多行插入代替单行:insert into t values (),(),(),... ⑵ LOAD DATA INFILE ... INTO TABLE t ⑶ 写

㈠ 大数据量INSERT

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

⑵ LOAD DATA INFILE ... INTO TABLE t

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

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

⑸ INSERT时指定DELAYED属性

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

㈡ 大数据量UPDATE

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

① SELECT 唯一字段,变更字段

② 把结果集写入临时表

③ 为临时表创建复合索引

④ 循环临时表的每条记录

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

㈢ 大数据量DELETE

① 分区表

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

推荐阅读:

PL/SQL“ ORA-14551: 无法在查询中执行 DML 操作”解决

MySQL常用DDL、DML、DCL语言整理(附样例)

Oracle基本事务和ForAll执行批量DML练习

Oracle DML语句(insert,update,delete) 回滚开销估算

MySQL 大DML操作建议