2016-09-14 55 views
9

我有一个应用程序需要针对数百万个较小的集合应用灵活的查询,大小范围从10到10000个集合。 CQEngine在提供查询这些集合的灵活性方面表现出色,但比以前通过预先计算集合中集合中某些项目属性的集合的更僵化的实现要慢得多。该方法存在的问题是它不够灵活,无法轻松处理添加新属性。针对小数据集的CQEngine优化

我的问题是处理数百万个较小的集合有什么我可以做的,以调整CQEngine使其更快。

  1. 我应该添加索引,或者如果集合超过某个大小,可能只添加索引。
  2. 我目前使用记录时间戳和HashIndex上的其他属性,如类别或标签的导航。

任何想法将不胜感激!

回答

0

显然这取决于你的查询,但是看看你正在使用的索引。虽然您可以在时间戳的部分(年,月,日等..)上做一个复合,但是可以使用时间戳的可导航声音

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