HarmonyOS RdbStore 中 batchInsert 需要增加 ConflictResolution 参数
需要往数据库中批量插入文件信息:
public
async
insert(files:
FileMeta[]
)
{
let t = Date.now();
// 这里如果用foreach, SQL执行失败不会异常退出,而是继续执行下一个SQL,不符合预期
for (let i = 0; i < files.length; ++i) {
const file = files[i];
const bucket: ValuesBucket = {
'fid': file.fid,
'from_diff': file.isFromDiff,
'base_path': file.serverPath,
'file_name': file.fileName,
'file_size': file.fileSize,
// other file properties ...
};
await this.dbStore.insert(FileMetaDao.FILE_META_TABLE, bucket, rdb.ConflictResolution.ON_CONFLICT_REPLACE);
}
t = Date.now() - t;
Logger.debug(LOG_TAG, 'insert %{public}d rows cost time: %{public}d ms', files.length, t);
}
// insert files ...
this.dbStore.beginTransaction();
try {
await this.insert(files);
this.dbStore.commit();
} catch (err) {
Logger.warn(LOG_TAG, 'transaction failed: %{public}s', JSON.stringify(err));
this.dbStore.rollBack();
}
上边业务中, 启动一个事务, 循环调用RdbStore的insert方法插入文件信息,并且指定冲突策略是 rdb.ConflictResolution.ON_CONFLICT_REPLACE, 使用这种方式, 插入400条信息大概需要 700ms左右。
在RdbStore中与一个批量插入API: batchInsert但是这个无法指定冲突策略, 因此无法用来优化上边业务场景。
期望:
1, 如何优化写入事务效率?
2, batchInsert 接口增加 ConflictResolution参数, 避免中间某个sql执行失败。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS faultLogger.query接口增加参数
21浏览 • 1回复 待解决
HarmonyOS RCP get请求时,在拦截器中增加header参数报错
52浏览 • 1回复 待解决
关于DataAbility, batchInsert失败了怎么回事?
3494浏览 • 1回复 待解决
HarmonyOS Text中,如何增加Image
50浏览 • 1回复 待解决
HarmonyOS 在应用中增加子进程UIAbility
26浏览 • 1回复 待解决
HarmonyOS 关于RdbStore的操作的一些疑问
39浏览 • 1回复 待解决
HarmonyOS 在build() {}中动态增加或删除Component
207浏览 • 1回复 待解决
HarmonyOS build中得view组件 如何销毁、移除、增加?
41浏览 • 1回复 待解决
关系型数据库RdbStore执行sql语句失败
1716浏览 • 1回复 待解决
HarmonyOS混淆后的代码,注释没有删除是正常的吗?是需要增加什么配置吗?
315浏览 • 1回复 待解决
HarmonyOS web组件移除增加问题
27浏览 • 1回复 待解决
#鸿蒙学习大百科#FA模型如何获取RdbStore实例?
269浏览 • 1回复 待解决
如何在HarmonyOS中添加编译参数
598浏览 • 1回复 待解决
HarmonyOS rdbstore 在 c++ 层开多线程进行事务操作具体有什么限制?
24浏览 • 1回复 待解决
对象动态取值,在http请求时需要对参数进行处理
232浏览 • 1回复 待解决
HarmonyOS如何增加控件点击热区?
664浏览 • 1回复 待解决
HarmonyOS Toolbar如何增加底部阴影
24浏览 • 1回复 待解决
HarmonyOS 开发中需要的工具类
254浏览 • 1回复 待解决
HarmonyOS post网络请求需要设置参数及证书不校验的场景,如何设置
64浏览 • 1回复 待解决
#鸿蒙学习大百科#可选参数为什么需要避免使用?
277浏览 • 1回复 待解决
HarmonyOS执行OH_AVMuxer_AddTrack,里面的参数是否需要执行OH_AVFormat_SetBuffer
378浏览 • 1回复 待解决
HarmonyOS 能拦截Image组件的网络请求,然后增加点header吗?图片服务器要求有特殊的header参数?
63浏览 • 1回复 待解决
#鸿蒙通关秘籍#怎样在鸿蒙系统中页面返回前增加询问框?
146浏览 • 1回复 待解决
HarmonyOS 如何给Text增加描边
59浏览 • 1回复 待解决
#鸿蒙学习大百科#数据库batchInsert和单个事务insert效率是一样的吗?
213浏览 • 1回复 待解决
可以使用insertSync,参考如下示例: