Closed muyannian closed 10 years ago
mdrill在计算过程中,实际上不会操作数据的真实值,而是值的代号。这个代号实际上是将一个列的每一个值进行排重后按照从小到大的顺序进行编号,通常来说我们标记为t1,t2,t3,t4…….tn。 每次查询mdrill会先根据用户的过滤条件,根据倒排索引筛选出符合条件的记录id列表,我们称为doclist,然后根据文档的id得到值的代号,进行后续的计算。 如何快速的根据文档的id得到值的代号,对mdrill的性能影响非常大。
现在是这样搞的
t1,t2,t3,t4,t5=>bitset(crc) t6,t7,t8,t9,t10,t11=> bitset(crc) t12,t13,t14,t15,t16,t17=> bitset(crc) ……
测试了下 不靠谱
mdrill在计算过程中,实际上不会操作数据的真实值,而是值的代号。这个代号实际上是将一个列的每一个值进行排重后按照从小到大的顺序进行编号,通常来说我们标记为t1,t2,t3,t4…….tn。 每次查询mdrill会先根据用户的过滤条件,根据倒排索引筛选出符合条件的记录id列表,我们称为doclist,然后根据文档的id得到值的代号,进行后续的计算。 如何快速的根据文档的id得到值的代号,对mdrill的性能影响非常大。
现在是这样搞的
t1,t2,t3,t4,t5=>bitset(crc) t6,t7,t8,t9,t10,t11=> bitset(crc) t12,t13,t14,t15,t16,t17=> bitset(crc) ……