【问题标题】:Cassandra with SSTable Attached Secondary Index vs relational database带有 SSTable 附加二级索引的 Cassandra 与关系数据库
【发布时间】:2017-04-04 08:20:42
【问题描述】:

我是 Nosql 数据库(例如 Cassandra)的新手,目前我看到了这个二级索引和 sstable 附加二级索引。有些我对在 Cassandra 中使用二级索引的目的感到困惑,关系数据库和带有二级索引的 Cassandra 有什么区别?查询时哪个性能更好?

【问题讨论】:

    标签: sql database cassandra secondary-indexes nosql


    【解决方案1】:

    在 Cassandra 中:
    在以下情况下您应该使用 SASI:

    • 您需要多条件搜索,不需要排序/分组/评分
    • 您的搜索查询通常需要 100 到 1000 行
    • 您始终知道要搜索的行的分区键(这也适用于本机二级索引)
    • 您想要为静态列编制索引(SASI 没有任何损失,因为它索引了整个分区)

    如果出现以下情况,您应该避免 SASI:

    • 您有非常宽的分区要索引,SASI 只给出分区偏移量。昂贵的线性扫描仍然在 Cassandra 端执行,没有集群列索引的帮助来跳过块
    • 您对搜索延迟有很强的 SLA,例如亚秒级要求
    • 您需要搜索分析场景(SASI 不适合获取一半的表),除非您将 SASI 与位于同一位置的 Apache Spark 一起使用,但即使在这种情况下,搜索引擎也会以 2 个数量级的延迟获胜 搜索结果的顺序对您很重要

    如果您决定在生产环境中尝试 SASI,请记住,SASI 确实会影响您的写入/刷新吞吐量、压缩吞吐量以及修复和流式操作。这在意料之中,因为 SASI 索引文件遵循 SSTable 生命周期。

    来源:http://www.doanduyhai.com/blog/?p=2058

    在 RDBMS 中:没有这样的限制。您可以对结果排序、执行聚合和分组。

    【讨论】:

      猜你喜欢
      • 2021-08-19
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      • 2023-04-08
      • 1970-01-01
      • 2015-06-10
      相关资源
      最近更新 更多