Cassandra,运行子查询的有效方法是什么

时间:2019-04-05 12:10:48

标签: cassandra bigdata

我有一个庞大的员工表(大约20到3000万),并且我有大约50,000个员工ID可供选择。

最快的查询方式是什么?是这样的查询吗:

select * from employee_table where employeeid in (1,400,325 ....50000)

id不一定是顺序的;它们是随机的。

1 个答案:

答案 0 :(得分:1)

当在查询中使用IN子句时,协调器节点的负载会增加,因为对于每个值(在您的情况下为雇员id),它都需要命中所需的节点(同样基于查询的CL)并整理结果,然后再返回给客户。因此,如果您的IN子句有几个值,则可以使用IN。 但是在您的情况下,如果您需要获取约5万个员工ID,建议您为这5万个ID并行触发select * from employee_table where employeeid = <your_employee_id> 我还建议您在执行此操作时,应监视cassandra集群并确保这些并行查询不会对集群造成高负载。 (这是根据我的个人经验得出的声明:))