CQEngine针对小型数据集进行优化

时间:2016-09-14 14:34:41

标签: java cqengine

我有一个应用程序需要对数百万个较小的集合应用灵活的查询,每个集合的大小从10到10000个。 CQEngine在提供查询这些集合的灵活性方面工作得很好,但是比先前更严格的实现要慢得多,后者通过预先计算集合中某些项目属性的聚合来工作。该方法的问题在于它不够灵活,无法轻松处理新属性的添加。

我的问题是处理数以百万计的小型集合,我可以做些什么来调整CQEngine以使其更快。

  1. 我应该添加索引,还是只在集合超过某个大小时才添加索引。
  2. 我目前在记录时间戳上使用Navigable,在其他属性上使用HashIndex,类似于类别或标记。
  3. 任何想法都将不胜感激!

1 个答案:

答案 0 :(得分:0)

显然这取决于您的查询,但是请查看您正在使用的索引。虽然你可以在时间戳的某些部分(年,月,然后是等等)进行复合,但是可导航的时间戳听起来没问题。

确定对象的不同属性的cardinality并按优先顺序排列索引 - 使用高级caridnal项的散列和较低基数属性的树。