mysql插入1000条数据到数据表中如何能加快速度 50

我现在是foreach循环一条一条插入而且我的数据表中用户id建了索引现在插入速度十分的慢大神能说说怎么弄吗给个思路thanks... 我现在是foreach循环一条一条插入 而且我的数据表中用户id建了索引 现在插入速度十分的慢 大神能说说怎么弄吗 给个思路 thanks 展开
 我来答
星辰大海byj
2014-01-23 · TA获得超过1020个赞
知道小有建树答主
回答量:993
采纳率:100%
帮助的人:522万
展开全部
常用的插入语句如:

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。
hvkwt942
推荐于2018-05-12 · TA获得超过2268个赞
知道小有建树答主
回答量:2414
采纳率:0%
帮助的人:309万
展开全部
一次性插入1000条数据比一个插入N倍的速度会增加,上述的主要技巧是写SQL,没啥难度
插入table1中的价值(V1,V2,V3),(X1,X2,X3), ....

插入table1中的价值(V1,V2,V3);

插入table1中的值(X1,X2,X3); 插入这样一个人
我希望你能理解
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-23
展开全部

批量插入的方式有很多,

  1. insert into语句一次插入多个记录

  2. 实用预加载语句批量加载

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式