【问题标题】:Fastest database engine to store huge string list存储巨大字符串列表的最快数据库引擎
【发布时间】:2013-12-14 21:43:27
【问题描述】:

我有一个巨大的唯一字符串列表(1.000.000.000+ 行)。 我需要知道此列表中是否存在字符串。 最快的方法是什么?

我想我需要一个非常简单的带有 Btree 索引的数据库引擎,它可以让我进行快速查找……而 MySQL 可能太慢太复杂了。

【问题讨论】:

  • 如果您只需要对特定字符串执行一次,您应该使用 grep :-)

标签: mysql database string nosql lookup


【解决方案1】:

如果这是您需要做的全部,那么您应该仔细研究一下专门用于字符串的尝试和相关数据结构(例如后缀数组)。有了这么多字符串,保证会有很多重叠,而这些数据结构可以消除这种重叠(不仅节省内存,还节省处理时间)。

【讨论】:

  • 这个。 OP 真正需要的是 trie,而不是完整的 RDBMS 或 NoSQL 解决方案。
  • 你知道这种结构的并行实现吗?对于数十 GB 的字符串,我认为并行性将是一个好处。
  • @GordonLinoff 取决于您要并行化的内容。并行运行多个只读查询很简单。构建应该易于并行化:在每个级别,您根据字符串的下一个字母对字符串进行分桶,然后独立地为每个桶进行构建。似乎不可能并行化一次搜索的各个部分,但由于 trie 查找是 O(字符串长度),这似乎不是问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-13
  • 2010-10-08
  • 1970-01-01
  • 2014-11-18
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多