【发布时间】:2019-03-29 11:10:11
【问题描述】:
在apache ignite 2.7.0和2.3.0上测试,如果没有缓存数据在写入,sql查询很快,但是当我写入数据时,sql查询变慢了,为什么?
当数据写入 apache ignite 缓存时如何使 sql 查询快速? 或者如何在apache ignite上分离缓存读写?
如下定义一个缓存实体 ABData 并使用 Streamer.add 方法加载 3000 个 ABData 10 次。 每次我们已经加载了所有的 ABData 之后(假设 10 分钟后,这意味着 3000 个 ABDatas 已添加到 ignite 缓存中),运行 SqlFieldQuery('select * from ABData'),所有 ABDatas 在 5 毫秒内返回。 但是每次3000个ABData还在加载中(比如每次加载ABData之前,我们启动另一个线程用SqlFieldQuery查询ABData),运行SqlFieldQuery('select * from ABData'),100之后返回所有的ABData毫秒。
public class ABData {
@QuerySqlField(index = true)
private String code;
@QuerySqlField(index = false)
private String configData;
@QuerySqlField(index = false)
private Integer categoryID;
}
【问题讨论】:
-
很遗憾,如果不了解您的查询或工作量,就很难回答。
-
我更新了问题,看看能不能帮助你理解。