win1027 发表于 2012-12-5 20:21:12

innodb 一次性插入亿级数据优化点

INSERT INTO table2(NAME, addr, createTime, comments)
SELECT NAME, MD5(addr), createTime, comments FROM table1;

需求:表table1有两亿数据,现需对addr字段进行md5摘要后保存到另外一张表,如以上sql。表table1、table2已分区。表table2初始为空表。
求助:现该sql很慢,如何优化?

kider 发表于 2012-12-6 09:46:41

这样直接执行是会很慢的,因为table1的数据量实在是太大了。
应该在select语句上做控制,如后面加上Limit xxxxx,循环批量操作数据;要不根据table1主键或有索引的某列来分段取值,这样的效果会好很多。
页: [1]
查看完整版本: innodb 一次性插入亿级数据优化点