我有一个表,如下卡桑德拉允许过滤
CREATE TABLE test (
day int,
id varchar,
start int,
action varchar,
PRIMARY KEY((day),start,id)
);
我想运行此查询
Select * from test where day=1 and start > 1475485412 and start < 1485785654
and action='accept' ALLOW FILTERING
难道这允许过滤的高效?
我期待的是卡桑德拉将在此为了
1. By Partitioning column(day)
2. By the range column(start) on the 1's result
3. By action column on 2's result.
过滤器,这样能够过滤不会对这个查询一个不错的选择。
如果where子句中有多个过滤参数,而非索引列是最后一个,那么过滤器将如何工作? 请解释。
我在不同的问题上阅读了同样的答案。这不是这个问题的答案。如果您知道,请详细说明查询的工作方式。 – Bharathi
我不知道那个问题,但是我在这个旧的[datastax doc](https://www.datastax.com/dev/blog/allow-filtering-explained-2)上阅读了这个问题。看看它。 虽然我仍然认为我的答案解释得很好。但是,如果您发现其他情况,请在此提及。也会清除我的错误观念(如果有的话)。谢谢! – r005t3r
感谢您的更新。我知道ALLOW FILTERING将扫描整个列系列。但是这里的问题是,如果where子句中有多个过滤参数,而非索引列是最后一个,那么过滤器将如何工作?请阅读该问题,并告知我是否需要进行任何编辑以获得更好的理解。 – Bharathi