我使用Couchbase的Java SDK来读取和写入数据。目前,我有大量的需要被保存在Couchbase记录。这些记录包含两种新的或现有的一个。
我使用Bucket.upsert此功能。但我也需要捕获多少记录被创建或更新到Couchbase。
如何有效地实现这一目标?以下是我现在有我的伪代码
JsonDocument doc = bucket.get("docId")
if (doc != null) {
// Perform update
updatedCount++;
} else {
// perform insert
insertedCount++;
}
任何想这样做更好的方法。因为我有超过50万点的记录保存到Couchbase。
不幸的是,我们目前没有暴露的UPSERT是否确实插入或更新。
如果你愿意采取一些性能损失,你可以,如果插入失败直接做后面的更新插入,并跟踪插入不是经常发生。这应该给你的频率,而不是更新UPSERT会做插入一些指示。
如果这是太大的性能损失,你可以做的1/1000或1 / 1,000,0000操作两步操作。这应该保持性能损失可控,同时产生有用的信息。