当前位置 : 主页 > 网络推广 > seo >

.net – 存储由3元组索引的对象的最佳数据结构,以便在每个维度和低内存配置文

来源:互联网 收集:自由互联 发布时间:2021-06-16
我想存储由3元组(String,String,DateTime)索引的对象.让我们称这些标识符,类别,日 数据结构中的任何对象都保证3元组是唯一的(没有重复) 数据结构应支持快速回答问题,例如: – 所有唯一标
我想存储由3元组(String,String,DateTime)索引的对象.让我们称这些标识符,类别,日

数据结构中的任何对象都保证3元组是唯一的(没有重复)

数据结构应支持快速回答问题,例如:
– 所有唯一标识符是什么?
– 识别“xyz”的类别是什么?
– 标识符=“xyz”且类别为“mycategory”的日期是什么时候?

去除也是可能的.保持低内存配置文件会很棒.

作为基线,我使用Dictionary< string,Dictionary< string,Dictionary< DateTime,object>>>

理论上这应该给我O(1)检索,但我不熟悉字典的内部,一般我觉得我的解决方案是次优的.

我知道这里可能没有正确的答案,我可以提供大量的使用细节,但也许有人可以给我一些想法?

编辑
执行的唯一检索是相等的(即,identiifer =“xyz”).我不使用不等式(大于,小于等)

它取决于每列中值的相对数量,它们的分布以及查询的分布,因此没有最佳答案.

您的词典可以在一个维度上进行检索,但如果您想要一组功能,则必须进行线性搜索.

如果空间不是问题,您可以使用3级索引(树或散列表),以便首先沿1维检索项目,然后使用该节点上的字典查找沿第二维的所有项目的值对于维度1,然后使用该节点上的字典查找具有所有3个值的所有项目.

如果您想使用不等式回答查询,这也很重要.在这种情况下,树比字典好,因为它是有序的.

网友评论