【问题标题】:Should I use SQL or NoSQL to store a very large number of unique strings or integers?我应该使用 SQL 还是 NoSQL 来存储大量的唯一字符串或整数?
【发布时间】: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 是的,仅此而已

标签: sql nosql redis


【解决方案1】:

在我看来,这听起来像是您想要一个非常快速且简单的键/值存储,它甚至没有值。对于这样的用例,有比 MongoDB 更好的选择。例如,MemcacheDB 是 memcached 的持久化 dropin 替代品。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 2013-06-27
    • 2011-10-26
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多