Hi,
I am trying to execute a group by query on 86k items in a cache which is
taking 70 ms which imo is quite slow
Can anyone please let me know what is that I may be doing wrong?
Model code:
@Data
@ToString
@QueryGroupIndex.List(@QueryGroupIndex(name = "idx1"))
public class A implements Serializable {
@QuerySqlField(index = true, orderedGroups = {@QuerySqlField.Group(name =
"idx1", order = 5)})
private long id;
@QuerySqlField(index = true, orderedGroups = {@QuerySqlField.Group(name =
"idx1", order = 4)})
private long secondId;
@QuerySqlField(index = true, orderedGroups = {@QuerySqlField.Group(name =
"idx1", order = 3)})
private long timestamp;
@QuerySqlField(index = true, orderedGroups = {@QuerySqlField.Group(name =
"idx1", order = 2)})
private long thirdId;
@QuerySqlField(index = true, orderedGroups = {@QuerySqlField.Group(name =
"idx1", order = 1)})
private long fourthId;
@QuerySqlField(index = true, orderedGroups = {@QuerySqlField.Group(name =
"idx1", order = 0)})
private long mainId;
}
Main class for query:
private void startCache(){
CacheConfiguration<Long, A> cacheConfig = new
CacheConfiguration<>("testcache");
cacheConfig.setCacheMode(CacheMode.PARTITIONED);
cacheConfig.setBackups(0);
cacheConfig.setIndexedTypes(Long.class, A.class);
}
private void grouByQuery() {
IgniteCache<Long, Bet> cache = Ignition.ignite().cache("testcache");
SqlFieldsQuery qry = new SqlFieldsQuery("select mainId, count(*) from
Bet group by mainId order by count(*) desc limit 20");
Collection<List<?>> res = cache.query(qry).getAll();
}
Thanks.