求助关于大循环插入数据的问题。
发布于 11 年前 作者 hades 3849 次浏览 最后一次编辑是 8 年前

项目这要求大批量的插入数据。 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 回复

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

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

可否考虑延时插?

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

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

        async.forEachSeries(docs, processBuilding, function(){
            console.log('buildings done:', docs.length);
            process.exit();
        });

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

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

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

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

回到顶部