node js mysql存储数据
发布于 6 年前 作者 quanpf2481 4059 次浏览 来自 问答

遇到个问题,问问大神们有没有什么好的办法:我从数据库里面按照某个条件取出了数据(数据量很大,一次有20000条),取出来后我需要往mysql里面写入这些数据,我现在处理的办法是一条一条的往数据库里面写??请问有没有什么好的方法一次可以写入多条的方法,以减少写入所需要花的时间呢???

9 回复

看你用什么样的套件来存取资料库 我记得 mysql 也是有一次多笔写入的才对

批量写入了

INSERT INTO table(f1,f2,f3)VALUES(v11,v12,f13),(v21,v22,v23),(v31,v32,v33) .... 

直接把你的20000条分成几个commint即可

@imhered 能否详细的给举个例子??谢谢了

@quanpf2481 你这2W行是写到同一个表中吧? 直接构建我上面给你写的那一的SQL语句就行了,mysql最大的commint好像是有限制的,你要是每一行的数据里不大,你可以4,5千或者更多一个commit,数据里大的话1千或者更少一个commint

psql里有copy from可以将数据转换成流直接写入数据库,一次性上百万没问题,不过不知道mysql里有没有

如果是这样!我觉得可以换个思路去做这件事!比如写到kafka里面

knex支持batchInsert

LOAD DATA LOCAL INFILE https://dev.mysql.com/doc/refman/5.7/en/load-data.html @imhered 这个没限制,而且mysql无需编译sql,速度会快很多

你在找sequelize的Model.bulkCreate?

回到顶部