代码之家  ›  专栏  ›  技术社区  ›  Neron

Ignite CacheStore上的Sql查询

  •  1
  • Neron  · 技术社区  · 10 年前

    我有一个带有cachestore的Cache,由CacheJdbcPojoStoreFactory构建。问题是:当我尝试查询缓存时,它似乎只在内存上运行(在这种情况下不应用Read-Through)。我希望它能显示内存是否包含。如果没有,那么它应该查询数据库(但在这种情况下,缓存永远不会知道它需要的所有数据是否都位于内存中,但索引可能可以提供这么快的速度)。

    我是遗漏了什么还是这就是它的行为?

    谢谢

    1 回复  |  直到 10 年前
        1
  •  1
  •   Valentin Kulichenko    9 年前

    这是正确的行为。SQL查询不进行通读,因为键值存储中的通读只能通过键进行,而在所需键集未知的SQL中,这是不可能的。

    话虽如此,在执行查询之前,您需要将查询所需的所有数据存储在内存中。你可以使用 loadCache() 方法将数据批量加载到缓存中。有关详细信息,请参见本页: https://apacheignite.readme.io/docs/data-loading#ignitecacheloadcache

    而且 GridGain 正在开发一个新的企业功能,它将允许实现您所描述的功能,但使用专有的底层磁盘存储。对于抽象持久存储(如关系数据库),这仍然是不可能的。