gpt4 book ai didi

mysql - 从 Node js 加载数据 infile 执行缓慢

转载 作者:行者123 更新时间:2023-11-29 02:53:46 25 4
gpt4 key购买 nike

我正在尝试使用下一个查询从我用 Node js 编写的脚本中的表中插入超过 600,000 行。

var sql =   " LOAD DATA LOCAL INFILE '/tmp/insertFile18.csv'" + 
" INTO TABLE `pricing_leasing`" +
" FIELDS TERMINATED BY ',' LINES TERMINATED BY '+-'";

问题是它永远不会完成(我在午餐时间等了 1 小时),也没有给出错误。我直接在bash里面执行,很快,不到一分钟。然后我决定在 nodejs 中编写一个小脚本,它除了执行脚本外什么都不做,它会在 2 分钟内完成,这没问题。

我的问题是,如果我只是在 bash 中或在它自己的 Node js 脚本中执行查询,它能正常工作,但如果我之前有更多的事情要做(对不同表和文件操作的其他查询),它会变慢。

更新

function uploadFile() {

var deferred = GLOBAL.q.defer(),
strFileName = "/tmp/insertFile" + GLOBAL.company.id + ".csv",
cb = function ( err ) {
//fs.unlinkSync( strFileName );
if ( err ) {
console.log( err );
GLOBAL.objRstOfInsert['success'] = false;
} else {
// Update return structure with success message
GLOBAL.objRstOfInsert['success'] = true;
}
console.log("finished uploads");
deferred.resolve();
};

var lstInsertPricingColumns = '(`sourcecompany_id`,'+
'`company_id`,'+
'`price`,`active`,`row_hash`)';

var sql = " LOAD DATA LOCAL INFILE '" + strFileName + "'" +
" INTO TABLE " + GLOBAL.company.tableInsert +
" FIELDS TERMINATED BY ',' LINES TERMINATED BY '+-'"+
lstInsertPricingColumns;

GLOBAL.db['rates'].query( sql, cb );
return deferred.promise;
}

最佳答案

问题是云服务器的内存比我本地的少。然后我猜文件太大了。我修复了分割成多个较小的文件来加载数据的问题,现在工作正常。

谢谢。

关于mysql - 从 Node js 加载数据 infile 执行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32869980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com