gpt4 book ai didi

sql - 带有 SSTable 附加二级索引的 Cassandra 与关系数据库

转载 作者:搜寻专家 更新时间:2023-10-30 22:33:33 24 4
gpt4 key购买 nike

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

最佳答案

在 Cassandra 中:
如果出现以下情况,您应该使用 SASI:

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

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

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

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

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

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

关于sql - 带有 SSTable 附加二级索引的 Cassandra 与关系数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40711693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com