数据库-NodeJS数据查询写入文件

作者:用户 来源:互联网 浏览:1161 次 时间:2016-09-05 19:19:05

数据库

数据库-NodeJS数据查询写入文件 - 摘要: NodeJS数据查询写入文件有两个不同的数据库,需要条件查询一个数据库选出用户名,量比较大大概300W左右然后用这300W用户名查询另外一个库的数据,写入到最后的文件当中。用什么方法比较好呢?方法1:

问题描述

NodeJS数据查询写入文件

有两个不同的数据库,需要条件查询一个数据库选出用户名,量比较大 大概300W左右
然后用这300W用户名查询另外一个库的数据,写入到最后的文件当中。用什么方法比较好呢?

方法1:分页查询出用户名,然后查询另外一个库,查询结果写入文件

方法2:一次性查出用户名,写入文件当中,然后根据文件逐行查询,写入文件。

解决方案

用这300W用户名查询另外一个库的数据
这个查询是怎么查询的。
性能出现在查询结果过多还是查询速度过慢。

如果是后者,建议优化你的查询语句,sql server一类的数据库可以跨库join,性能很高。另外给name做index也有助于提高性能。

解决方案二:

或者大家有更好的方法?
async.series([
function(writeusers_cb){
//获取用户列表,写入文件
operater.list_usernames(type,online,offline,function(err,datalist){
if(err){
writeusers_cb(err,null)
}
else {
if(datalist.length > 0){
var chunks = [];
var length = 0;
var newLine = 'n';
for(var i=0,size=datalist.length;i<size;i++){
var value = datalist[i].username+newLine;
var buffer = new Buffer(value);
chunks.push(buffer);
length += buffer.length;
}
var resultBuffer = new Buffer(length);
for(var j=0,size=chunks.length,pos=0;j<size;j++){
chunks[j].copy(resultBuffer,pos);
pos += chunks[j].length;
}
fs.writeFile(filename,resultBuffer,function(err){
if(err){
writeusers_cb(err,null);
}
else {
writeusers_cb(null,1);
}
用buffer写入文件,300W的量很快。如果逐行写会特别慢。

解决方案三:

关注一下~~~~~~~~~~

解决方案四:

http://ask.csdn.net/questions/163017

【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!  详情请点击
云栖社区(yq.aliyun.com)为您免费提供数据库-NodeJS数据查询写入文件相关信息,包括 数据库 的信息 ,所有数据库-NodeJS数据查询写入文件相关内容均不代表云栖社区的意见! 该页面h5页面的地址是:https://m.aliyun.com/yunqi/wenzhang/show_64690,您可以点击数据库-NodeJS数据查询写入文件-手机站访问。
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

现在注册,免费体验40+云产品,及域名优惠!

云服务器9.9元/月,大学必备

热点导航