我的cassandra数据库中有一个表,其中包含userid、city1、city2和city3列。如果我想检索所有以“巴黎”为城市的用户,我的查询是什么?我知道Cassandra没有,所以我不知道如何构造查询。
fdbelqdn1#
首先,这在很大程度上取决于表的结构 userid 作为分区键,您当然可以使用辅助索引来搜索城市中的用户,但这不是最佳的,因为它的扇出调用请求被发送到集群中的所有节点。您可以重新设计使用以城市为分区键的物化视图,但是如果在某些城市有大量用户,则可能会出现问题。通常,如果需要在同一列中选择多个值,可以使用 IN 运算符,但最好不要将其用于分区键(并行查询更好)。如果你需要的话 OR 在不同的列上—您需要执行并行查询,并在应用程序端收集结果。
userid
IN
OR
1条答案
按热度按时间fdbelqdn1#
首先,这在很大程度上取决于表的结构
userid
作为分区键,您当然可以使用辅助索引来搜索城市中的用户,但这不是最佳的,因为它的扇出调用请求被发送到集群中的所有节点。您可以重新设计使用以城市为分区键的物化视图,但是如果在某些城市有大量用户,则可能会出现问题。通常,如果需要在同一列中选择多个值,可以使用
IN
运算符,但最好不要将其用于分区键(并行查询更好)。如果你需要的话OR
在不同的列上—您需要执行并行查询,并在应用程序端收集结果。