You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hazelcast:Query Cache是否需创建索引?索引需同时加至IMap与缓存吗?

Hazelcast Query Cache 索引相关问题解答

嘿,我来帮你理清这两个关于Hazelcast Query Cache索引的问题:

问题1:是否需要为Query Cache创建索引?

答案是需要,但要结合你的实际使用场景。Query Cache本质上是源IMap的一个独立数据副本,有自己的存储和查询机制。如果你需要直接在Query Cache上执行查询操作,给它创建对应的索引绝对能大幅提升查询效率——毕竟没有索引的话,查询会做全量扫描,数据量大的时候性能会很差。但如果你的Query Cache只是用来同步数据,完全不直接查询它,那索引就不是必需的。不过大部分使用Query Cache的场景都会涉及查询,所以一般建议根据你的查询条件按需创建索引。

问题2:索引需要同时添加到IMap和Query Cache中吗?

不需要同时添加,关键看你的查询是针对哪个对象执行的:

  • 如果你的查询操作是直接在源IMap上调用的(比如clientMap.query(...)),那只需要给IMap添加索引就够了,Query Cache的索引不会对IMap的查询产生任何影响。
  • 如果你的查询是针对Query Cache本身执行的(比如cache.query(...)),那只需要给QueryCache添加索引即可。源IMap的索引完全不会作用到Query Cache上,因为它们是相互独立的数据存储实例。

举个实际的例子:如果你的代码里只会用cache对象来做查询,那只保留cache.addIndex("user.id", false)这一行就够了;如果只会用clientMap查询,那只需要clientMap.addIndex("user.id", false)。当然啦,如果两种查询场景你都有,那两者都加索引也没问题,但如果只用到其中一种,重复添加只会浪费资源,完全没必要。

内容的提问来源于stack exchange,提问作者GreenRover

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:59:33