【发布时间】:2012-04-25 16:31:12
【问题描述】:
我想知道存储大量字符串和检查重复的最佳方法是什么。
我们必须考虑我们的优先事项:
- 重复检查速度
- 插入新的字符串时间
- 硬盘上的存储空间
- 随机访问时间
当我们的目标是快速重复检查和插入新字符串时(没有随机访问或存储空间问题),最好的解决方案是什么? 我想到了 SQL 数据库,但哪个 DB 最适合这个解决方案? 如果我们使用 SQL DB,比如 MySQL,哪个存储引擎是最好的? (当然,由于数据量,我们必须排除内存)
【问题讨论】:
-
您能否详细说明“随机访问时间”的含义?如果您的数据是一组字符串,您将拥有的唯一操作是“添加”、“包含”和“删除”。
-
如果您告诉我们更多关于您的问题的信息,我们可以为您提供更好的帮助,例如,如果您在运行时处理字符串,但内存足够大,最好的方法是将它们存储在一个列表/哈希/数组,并且仅在它们不存在时才添加项目,然后在最后写出数组(如果您在运行后需要它,请再次详细说明)。
-
您是在尝试组合不同字符串的集合、过滤重复项还是什么?目的是什么?特别是:重复的预期分数是多少?您是否希望几乎所有内容都是重复的,或者这是一个罕见的事件?是否要将所有新值添加到数据库中?
-
主要目标是检查给定的字符串(哈希)是否已经被检查=搜索重复。每 10 次检查重复计数约 1-3 次。所有新值都应添加到数据库中(可以作为哈希)。