mysql插入1000条数据到数据表中如何能加快速度 50
我现在是foreach循环一条一条插入而且我的数据表中用户id建了索引现在插入速度十分的慢大神能说说怎么弄吗给个思路thanks...
我现在是foreach循环一条一条插入 而且我的数据表中用户id建了索引 现在插入速度十分的慢 大神能说说怎么弄吗 给个思路 thanks
展开
3个回答
展开全部
常用的插入语句如:
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)
VALUES ('0', 'userid_0', 'content_0', 0);
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)
VALUES ('1', 'userid_1', 'content_1', 1);
修改成:
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)
VALUES ('0', 'userid_0', 'content_0', 0), ('1', 'userid_1', 'content_1', 1);
修改后的插入操作能够提高程序的插入效率。这里第二种SQL执行效率高的主要原因是合并后日志量(MySQL的binlog和innodb的事务让日志)减少了,降低日志刷盘的数据量和频率,从而提高效率。通过合并SQL语句,同时也能减少SQL语句解析的次数,减少网络传输的IO。
SQL语句是有长度限制,在进行数据合并在同一SQL中务必不能超过SQL长度限制,通过max_allowed_packet配置可以修改,默认是1M,测试时修改为8M。
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)
VALUES ('0', 'userid_0', 'content_0', 0);
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)
VALUES ('1', 'userid_1', 'content_1', 1);
修改成:
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)
VALUES ('0', 'userid_0', 'content_0', 0), ('1', 'userid_1', 'content_1', 1);
修改后的插入操作能够提高程序的插入效率。这里第二种SQL执行效率高的主要原因是合并后日志量(MySQL的binlog和innodb的事务让日志)减少了,降低日志刷盘的数据量和频率,从而提高效率。通过合并SQL语句,同时也能减少SQL语句解析的次数,减少网络传输的IO。
SQL语句是有长度限制,在进行数据合并在同一SQL中务必不能超过SQL长度限制,通过max_allowed_packet配置可以修改,默认是1M,测试时修改为8M。
展开全部
一次性插入1000条数据比一个插入N倍的速度会增加,上述的主要技巧是写SQL,没啥难度
插入table1中的价值(V1,V2,V3),(X1,X2,X3), ....
插入table1中的价值(V1,V2,V3);
插入table1中的值(X1,X2,X3); 插入这样一个人
我希望你能理解
插入table1中的价值(V1,V2,V3),(X1,X2,X3), ....
插入table1中的价值(V1,V2,V3);
插入table1中的值(X1,X2,X3); 插入这样一个人
我希望你能理解
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-23
展开全部
批量插入的方式有很多,
insert into语句一次插入多个记录
实用预加载语句批量加载
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询