CNode

node js mysql存储数据

问答
Qquanpf2481发布于9 年前最后回复9 年前9 回复5575 浏览0 收藏

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

查看回复

回复 (9)

R
Rukeith#1·9 年前

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

I
im-here#2·9 年前

批量写入了

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

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

Q
quanpf2481#3·9 年前
引用 im-here批量写入了 ` 直接把你的20000条分成几个commint即可

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

I
im-here#4·9 年前
引用 quanpf2481@imhered 能否详细的给举个例子??谢谢了

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

O
oyosc#5·9 年前

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

R
Robert-lihouyi#6·9 年前

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

G
godghdai#7·9 年前

knex支持batchInsert

Z
zy445566#8·9 年前

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

X
xiaozhongliu#9·9 年前

你在找sequelize的Model.bulkCreate?

参与回复
登录后即可参与回复。登录