我正在使用离子v1和angularjs并使用foreach循环向数据库添加值,但它对我来说很慢(500次执行此循环)。
工厂1:
self.query = function(query, parameters) {
return $cordovaSQLite.execute(db, query, parameters).then(function(result) {
//console.log(result);
return result;
}, function (error) {
console.log(error);
return error;
});
};
工厂2:
self.add = function (url,data) {
return DBA.query("INSERT OR REPLACE INTO offline_data (id, data) VALUES (?, ?)", [url, JSON.stringify(data)]);
};
通过以下方式添加db:
angular.forEach(result.style_list, function(value){
OfflineDataService.add(value.style_id, value)
});
我们如何才能更快......
答案 0 :(得分:0)
听起来你需要找到一种方法来进行批量插入,即在单个SQL语句中执行许多插入:
INSERT OR REPLACE INTO offline_data (id, data)
VALUES (?, ?), (?, ?), (?, ?), ...
这将取决于您的数据库及其支持的内容,但如果确实如此,您可以批量处理数据,一次插入50行的批次。