【问题标题】:In-memory data structure for compactly mapping billions of dictionary keys to values用于将数十亿个字典键紧凑映射到值的内存数据结构
【发布时间】:2010-10-27 01:33:32
【问题描述】:

我有数十亿条记录(键/值)要紧凑地存储在内存中,我需要支持的唯一操作是通过键查找值。键和值都是小字符串。最重要的是数据结构是如何压缩的;它应该比简单的关联数组更深入地使用键的内部结构。例如,将键“apple”、“apply”和“apron”映射到值“1”、“2”和“3”应该以某种方式进行压缩。我在寻找什么数据结构?

【问题讨论】:

    标签: data-structures


    【解决方案1】:

    听起来你想要一个trie - 它通过只存储每个前缀一次来完成你描述的那种“压缩”。

    我假设您有足够的内存来存储“数十亿”个密钥,当然,您首先需要在 64 位系统上才能处理这么多的项目。

    【讨论】:

      【解决方案2】:

      你可以试试Trie。它从键字符串本身形成一个树结构。不会有空位置(如在哈希图中)。

      【讨论】:

        【解决方案3】:

        即使您正在处理的数据是小字符串,您真的确定您需要在内存中存储这么多数据吗?这很容易达到千兆字节的内存,并且大多数数据可能不会被如此频繁地查询。

        经过微调的数据库可能足以满足您的需求。

        【讨论】:

          猜你喜欢
          • 2010-11-15
          • 1970-01-01
          • 2012-07-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-09-01
          相关资源
          最近更新 更多