假设我有100列数据,并且我想在这100列中的70列支持(聚合)查询,我可以在这里使用最好的数据结构:
实施例: 5栏(studentGender,studentClass,studentGrade,studentAttendanceGrade,studentCoin)
现在我想支持3种类型的聚合查询:
请不要提供SQL解决方案,我说的是带有数据结构和输入(大小为5的向量)的C程序实时出现,除非存在一些有效的解决方案,否则我可能无法存储原始粒度数据。
一种解决方案是为每种查询类型维护一个hashTable。 但是这个解决方案难以扩展,因为将来如果我们支持100列和70个查询,那么在这种情况下我们需要为每个查询类型维护70个hashTables
答案 0 :(得分:0)
我发现你的问题非常广泛,但可能适合亲密投票,但是,提出一些想法:
对我来说,主要的问题是,"我们谈论了多少行?"如果数据实时高速进入,只有偶尔的查询,则将数据的接收(例如平面文件)和处理这些数据(读取平面文件)分开。
如果查询都已预先确定,则另一种解决方案是在进入时即时处理数据。
如果查询更具动态性,则可以选择哈希表和平衡树。