代码之家  ›  专栏  ›  技术社区  ›  claudius

需要关于数据存储选择的建议吗

  •  0
  • claudius  · 技术社区  · 6 年前

    要求

    • 横向可扩展。
    • 对二级索引进行快速排序。
    • 对一组文档进行原子更新(或通过 文档(来自过滤器)被最终用户视为已更新 一起。
    • 应该很容易维护很多桌子。每张桌子
    • 应该很容易添加一个综合指数。过滤条件可以 随时更改(对筛选器的查询不是预定义的)。最好是这样 如果数据存储允许对所有可能的组合进行快速筛选 列数(默认情况下包含所有可能的复合索引)。

    • 在上面提到的对一组文档进行原子更新时,我们通常只更新两三列。如果数据存储支持部分文档更新而不需要重新索引整个文档,那就太好了。

    • 高可用性
    • 高写吞吐量或低写延迟

    查询模式

    {
      "item_id": "1234",
      "brand": "adidas",
      "average_price": 123,
      "rate_of_sale": 123,
      "visual information": {
        "img_url": "http://imgsdsd",
        "color": "red"
      }
    }
    
    • 获得所有阿迪达斯品牌产品在100至200价格和排序过滤器 根据销售额设置。
    • 更新第二天所有商品的销售价格 在csv上。它应该是一个原子更新或者它应该创建一个 新建表,用新的ros复制数据,删除旧的表和
    1 回复  |  直到 6 年前
        1
  •  1
  •   arvind ravichandran    6 年前

    因为您需要横向可伸缩性,像Mysql这样的事务存储就不起作用了。

    Elastic search或Solr支持所有用例(原子批量更新除外),但如果您正在更新整个索引,则可以使用别名来解决此问题。

    如果复合索引的数量不多,还可以考虑使用Mysql并进行应用程序级分片。

    https://db-engines.com/en/ranking 是比较数据存储的好网站。