查询包含分区键和聚类键的表时仅提供分区键是否会对性能产生影响?
例如,对于具有分区键p1和聚类键c1的表,
SELECT * FROM table1 where p1 = 'abc';
效率不如
SELECT * FROM table1 where p1 = 'abc' and c1 >= 'some range start value' and c1 <= 'some range end value';
我的目标是使用p1 ='abc'提取所有行。
答案 0 :(得分:1)
转到特定行与特定分区的主要成本是需要额外的工作,并且有必要在分区的开头反序列化群集键索引。它有些陈旧,以节俭为基础,但其要旨在以下方面仍然适用:
http://thelastpickle.com/blog/2011/07/04/Cassandra-Query-Plans.html (注意:删除了行级Bloom过滤器)
从分区的开头读取时,您可以节省一些工作,这将改善延迟。
只要您的查询不跨越多个分区,我就不会对此太担心。然后,通常只有分区大小达到数百mb或gb时,您才会遇到问题。