gridgain缓存访问性能:sql vs cache.getKey?

问题描述 投票:1回答:2

我正在访问gridgain缓存以获取大量密钥。我有两个选择来获取值:

  1. 访问gridgain缓存并为IgniteClosure中的每个键获取值并返回结果。
  2. 在缓存上执行org.apache.ignite.cache.query.SqlQuery,然后获取结果。

以下是我的问题:

  1. 在这种情况下,推荐/最佳方式是什么?
  2. 为什么一个人可能比其他人慢(例如查询解析可能会产生额外的开销)。
java ignite gridgain
2个回答
0
投票

您是否考虑过进行getAll(Set<K> keys)操作?听起来很适合您的用例。

如果您有更多数据,请考虑与本地ScanQuery并置处理,或映射/减少ExecuteTask / ExecuteJob。


0
投票

如果事先知道主键,则使用键值API,例如cache.getcache.getAll。如果这些记录还将用作计算的一部分,则尝试将计算转换为计算任务,并在存储键的主副本的节点上执行该任务-您可以为此使用compute.affinityRun方法。

如果事先不知道主键,或者需要使用WHERE子句过滤数据或在表之间进行联接,则SQL是有利的。

© www.soinside.com 2019 - 2024. All rights reserved.