跳到主要内容
CNode

求助关于大循环插入数据的问题。

社区
Hhades发布于 13 年前最后回复 13 年前
846440

项目这要求大批量的插入数据。 for(var i = 0; i < 1000000; i++){ process.nextTick(function () { var user = {}; user.name = 'outmem'; user.pass = '123456'; user.email = 'outmem@outmem.com'; save(....); }); } 几百条时还能正常插入,循环量一大程序就插不进数据了。

查看回复

回复 (8)

S
softice#813 年前

用回调吧,等插入完成后再插入接下来的,或者用setTimeout()来循环。手边有一个项目就是这样用的。

H
hades#713 年前

@.@看来还是得麻烦些,重头来过。

1、数组不能太大, 2、循环不能太大,

D
dengqiao#613 年前
引用 hades@dengqiao 那这一百万条数据要怎么插入数据库比较好。

批量插入,每次插入100条哈哈,这个100是我经常用的,你自己选择,不要太大,不要太小

L
leapon#513 年前

我的一个数据库更新的例子:

        async.forEachSeries(docs, processBuilding, function(){
            console.log('buildings done:', docs.length);
            process.exit();
        });
H
hades#413 年前
引用 hades@dengqiao 那这一百万条数据要怎么插入数据库比较好。

@youxiachai 是否有例子可以参考一下?

H
hades#213 年前

@dengqiao 那这一百万条数据要怎么插入数据库比较好。

D
dengqiao#113 年前

哥哥process.nextTick不是随便用的啊,考虑使用async模块的whilst函数控制一下

参与回复

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