【问题标题】:how to store and query billions of key-value pairs如何存储和查询数十亿的键值对
【发布时间】:2014-01-23 19:57:00
【问题描述】:

我正在生成这样的键值对:

KEY                       VALUE
----                      ------
user.varname.2014-01-01   10
user.varname.2014-01-02   10
user.varname.2014-01-03   10  

我需要手术:

  • 按用户名查询
  • 按变量名查询
  • 按日期查询

目前我正在使用 mysql,并且可以很好地拆分字符串以进行查询。

  1. 查询性能如何?这是存储和查询数十亿行的好方法吗?
  2. 也许我应该使用 nosql 或其他数据库?

【问题讨论】:

    标签: mysql database redis bigdata


    【解决方案1】:

    一个(非常)部分答案:

    像 redis 这样的纯键值存储对于按日期搜索等操作的性能非常差,因为在这个特定字段上没有索引(当然它不是您指定的字段,但您希望到)。

    所以 redis 必须读取所有键来搜索特定日期,这显然效率不高。

    根据您的 3 个搜索操作规范,如果您要搜索数十亿条记录,我看不出您如何避免拆分为 3 个字段并对其进行索引。

    【讨论】:

    • 这是真的。阅读和拆分所有项目以进行搜索是一个糟糕的主意。谢谢
    • 你真正在寻找什么你在 sql 中没有的?速度 ?可扩展性?至于速度,可以考虑stackoverflow.com/questions/10692398/…。如果要扩展到更大的数据集,请查看 hbase 等大数据数据库
    猜你喜欢
    • 2016-04-15
    • 1970-01-01
    • 2022-08-05
    • 2019-01-09
    • 2010-11-15
    • 2018-09-12
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    相关资源
    最近更新 更多