【发布时间】:2012-10-01 17:18:27
【问题描述】:
我想存储大量 (1,000,000) 个唯一 字符串或整数以供快速参考(此字符串是否存在于 db/store 中)。
没有复杂的数据关系,只是一个不断增加的简单字符串列表(或整数或可能是哈希)。我想非常频繁地查询这个列表,看看这个列表中是否存在实体。我不希望它消耗太多磁盘 I/O 周期来占用太多内存。
我尝试比较 NoSQL (mongo) 和 SQL (Postgres & MySQL) 来满足我的要求。但我仍然不确定确切的答案。
更新:我想保持这些数据持久化。所以,在断电或系统重启的情况下,我可以恢复应用程序。
【问题讨论】:
-
您正在描述一个键值存储 - 那么为什么不使用键值存储 - 例如Redis
-
如果只有几百万,最便宜和最简单的选择可能是您使用的任何语言的内存哈希表,以及一包多 GB DIMM。最后,您将使用磁盘 I/O 或内存来执行此操作;没有什么神奇的方法可以与几百万个整数或其他内容进行比较,而无需以某种方式访问它们。
-
@AD7six 那么您建议使用哪种数据类型?具有列表数据类型、字符串数据类型的单个键,我的唯一字符串作为键或其他?
-
@irfan 你只是想检查一个特定的值是否存在?
-
@alexn 是的,仅此而已