大家
我想请求社区帮助找到一种方法来缓存我们巨大的普通表,方法是将它分成多个哈希值或其他方式。
表的样本,作为结构的示例:
A1 B1 C1 D1 E1 X1
A1 B1 C1 D1 E1 X2
A7 B5 C2 D1 E2 X3
A8 B1 C1 D1 E2 X4
A1 B6 C3 D2 E2 X5
A1 B1 C1 D2 E1 X6
这是我们的非规范化数据,我们没有能力将其标准化。 所以目前我们必须按照'进行分组。获取所需的项目,例如获取所有D *我们执行数据.GroupBy(A1).GroupBy(B1).GroupBy(C1)'这需要很多时间。
我们暂时通过创建复合字符串键找到了解决方法:
A1 -> 'list of lines begin A1'
A1:B1 -> 'list of lines begin A1:B1'
A1:B1:C1 -> 'list of lines begin A1:B1:C1'
...
作为分组操作结果的缓存。
问题是它如何有效存储?
估计大约10M记录的非规范化数据中的行数,并且在我的示例中有6列,它将是散列中的60M条目。所以,我正在寻找一种在O(N)中查找值的方法(如果可能的话)。
感谢。