2016-11-21 31 views
0

我是新来的nosql数据库如Cassandra,目前我看到这个二级索引和sstable附加二级索引。有些我对Cassandra中使用二级索引的目的感到困惑,关系数据库和Cassandra与二级索引有什么区别?被查询时哪一个表现更好?卡桑德拉与SSTable附加二级索引vs关系数据库

回答

1

在卡桑德拉:
如果您应该使用SASI:

  • 你需要多条件搜索,你不需要排序/分组/得分
  • 你大多需要100行1000为您的搜索查询
  • 你总是知道要搜索的行的分区键(这也适用于本机二级索引)
  • 你想索引静态列(SASI有因为指标无罚全分区)

你应该避免SASI,如果:

  • 你必须索引很宽的分区,SASI只能给分区偏移。昂贵的线性扫描是基于卡桑德拉侧仍然进行,而不聚类列索引的帮助下用于跳过块
  • 你有强大的SLA上搜索延迟,例如子第二个要求
  • 需要搜索分析方案(SASI是除非你使用SASI和共同定位的Apache Spark,但即使在这种情况下,搜索引擎也会以2个数量级的延迟获胜 搜索结果的排序对您很重要

如果您决定在生产中尝试使用SASI,请记住SASI确实会影响您的写入/冲洗吞吐量,压实量以及作为修复和流式传输操作。这是相当期望的,因为SASI索引文件遵循SSTable生命周期。

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

在RDBMS:没有限制这样的。您可以订购结果,执行汇总和分组。