如果指定了分区键,Cassandra二级索引是否已优化?

时间:2014-10-18 11:45:56

标签: cassandra

对于在WHERE子句中指定分区键的辅助索引查询,辅助索引查找是否会命中所有群集节点,还是仅命中指定分区键的节点?
如果后者是正确的,那么二级索引也适用于高基数字段(仅适用于满足分区键的查询)。

编辑:例如,对于以下Feed模式,查询特定Feed(指定的feed_id)以检索现有或已删除的Feed项应非常有效:

CREATE TABLE my_feed (
   feed_id int,
   item_id timeuuid,
   is_deleted boolean,
   data text,
   PRIMARY KEY (feed_id, item_id)
) WITH CLUSTERING ORDER BY (item_id DESC);

CREATE INDEX my_feed_is_deleted_idx ON my_feed (is_deleted);

==> SELECT * FROM my_feed WHERE feed_id=1 AND is_deleted=false; --efficient?

2 个答案:

答案 0 :(得分:2)

如果首先点击分区键,则它不会是群集范围的操作。只会命中目标分区。如果分区中有很多行的宽行,则一旦分区被命中,二级索引将是一种有效的过滤方式。

答案 1 :(得分:0)

何时以及何时不使用二级索引以及为何涵盖此处:http://www.datastax.com/documentation/cql/3.1/cql/ddl/ddl_when_use_index_c.html