【问题标题】:How to know whether Couchbase updated or inserted a record using UPSERT如何知道 Couchbase 是否使用 UPSERT 更新或插入记录
【发布时间】:2019-02-07 13:21:52
【问题描述】:

我正在使用 Couchbase java SDK 来读取和写入数据。目前我有大量需要保存在 Couchbase 中的记录。这些记录包含新的或现有的记录。

我正在使用Bucket.upsert 来实现此功能。但我还需要记录在 Couchbase 中创建或更新了多少记录。

如何有效地实现这一目标?以下是我现在拥有的伪代码

JsonDocument doc = bucket.get("docId")
if (doc != null) {
    // Perform update
    updatedCount++;
} else {
    // perform insert
    insertedCount++;
}

任何想法以更好的方式做到这一点。因为我有超过 50 万条记录要保存到 Couchbase。

【问题讨论】:

标签: java-8 couchbase


【解决方案1】:

不幸的是,我们目前没有公开 UPSERT 是执行插入还是更新。

如果您愿意稍微降低性能,您可以直接执行插入操作,然后在插入失败时进行更新,并跟踪插入失败的频率。这应该可以让您了解 upsert 插入而不是更新的频率。

如果这对性能的影响太大,您可以在 1/1000 或 1/1,000,0000 操作中执行两步操作。这应该在生成有用信息的同时保持性能损失可控。

【讨论】:

猜你喜欢
  • 2013-10-03
  • 2022-01-09
  • 1970-01-01
  • 2010-09-19
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多