Cassandra CQL查询:如何筛选emp_name为'SACHHYA'的所有行
查询Cassandra中特定emp_name的CQL命令
要找出所有emp_name为'SACHHYA'的记录,直接用带WHERE过滤条件的SELECT语句即可:
SELECT * FROM emp WHERE emp_name = 'SACHHYA';
注意事项与性能优化
因为你的表的分区键是emp_id,Cassandra默认会按分区键存储和检索数据。如果没有为emp_name创建二级索引,上面的查询会触发全表扫描——也就是遍历所有分区来匹配符合条件的行,当表数据量较大时,这会明显影响查询性能。
如果需要优化这个查询的性能,可以给emp_name创建一个二级索引:
CREATE INDEX idx_emp_name ON emp(emp_name);
创建索引后,再执行上述SELECT语句就能更高效地定位到目标数据了。
你的emp表原始数据:
cqlsh:sachhya> select * FROM emp; emp_id | age | emp_name | exp | mobile --------+-----+--------------+-----+------------ 5 | 29 | RAHUL SHARMA | 9 | 2312343123 1 | 24 | SACHHYA | 15 | 9090987876 2 | 14 | SACHHYA | 15 | 9090987876 4 | 22 | ANKUR | 32 | 3213456321 90 | 30 | sumeet | 2 | 91234212 3 | 14 | SACHHYA | 3 | 9090987876
该表的PRIMARY KEY(分区键)为
emp_id。
内容的提问来源于stack exchange,提问作者Sachhya
相关产品推荐
相关产品推荐

