如何在googleappscript中通过jdbc高效地将批处理请求发送到mysql数据库?

tyu7yeag  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(398)

我正在googleappmaker中构建一个应用程序,它接收一个用户输入的excelsv文件,其中包含3列370573行,总共1111719个数据值。我正试图通过发送批处理请求来有效地将这些数据输入mysql数据库。然而,我不确定如何适当地优化这个过程,以尽量减少所需的时间。我现在就是这样完成这个过程的:

var file = DriveApp.getFileById(fileID);
var data = Utilities.parseCsv(file.getBlob().getDataAsString());
var stmt = conn.prepareStatement('INSERT INTO report '
   + '(createdDate, accountFullID, lsid) values (?, ?, ?)');
for(var i = 1; i <**data.length**; i++) {
   stmt.setString(1, data[i][0]);
   stmt.setString(2, data[i][1]);
   stmt.setString(3, data[i][2]); 
   stmt.addBatch();
}
var batch = stmt.executeBatch();
conn.commit();
conn.close();

在测试代码时,当我将for循环设置为迭代直到变量i小于500时,需要3分钟才能完成。当我把这个值设置为一个很小的数字,比如5,它需要几秒钟才能完成。当我将值设置为data.length(当前设置为粗体)时,它从未完成,并因死锁异常而超时。我应该如何编辑我的代码,以便更有效地执行批处理并减少从excel csv文件输入所有数据项(而不仅仅是电子表格的一小部分)所需的总时间?

cngwdvgl

cngwdvgl1#

如果这是一次性导入,我会使用app makers的原生导入功能。创建与cvs文档结构匹配的数据模型。然后在google表单中打开csv。确保格式与数据模型匹配,字段和列名完全匹配,然后使用app maker屏幕左上角的导入功能。选择google表和您创建的数据模型,然后单击import。这应该得到你的数据加载它仍然需要一些时间,因为100万项目是很多。我看到这是10个月前的,所以当时可能没有。
https://developers.google.com/appmaker/models/import-export

相关问题