在 Cassandra 3.0 中引入了 Materialized View
如果您使用的是 cassandra 3.0 或更高版本,您可以使用 Materialized view 按非主键排序
创建一个像这样的物化视图:
CREATE MATERIALIZED VIEW my_table_view AS
SELECT shard_key, priority, entity_id
FROM my_table
WHERE shard_key IS NOT NULL AND priority IS NOT NULL AND entity_id IS NOT NULL
PRIMARY KEY (shard_key, priority, entity_id);
假设您在 my_table 上有这些数据:
shard_key | entity_id | priority
-----------+-----------+----------
1 | 10 | 100
1 | 11 | 101
1 | 12 | 102
1 | 13 | 103
2 | 20 | 200
现在您可以像这样查询:
SELECT * FROM my_table_view WHERE shard_key = 1 ORDER BY priority ASC LIMIT 100;
输出将是:
shard_key | priority | entity_id
-----------+----------+-----------
1 | 100 | 10
1 | 101 | 11
1 | 102 | 12
1 | 103 | 13