Cassandra建表时如何通过PRIMARY KEY优化查询?
Cassandra表主键优化方案
根据你的查询需求,仅将uid设为主键就足够了,完全匹配你通过唯一标识uid查询userjson的场景。
原因说明
Cassandra的主键直接决定数据的存储分布和查询效率:
uid是唯一标识,作为分区键(单一主键时默认就是分区键),Cassandra会根据uid的哈希值将数据均匀分布到集群节点上- 查询时只需指定
uid,就能直接定位到数据所在的节点,避免全集群扫描,查询效率最高
修改后的建表语句
CREATE TABLE IF NOT EXISTS keyspace.user ( uid text, userjson text, email text, username text, dob text, number text, PRIMARY KEY (uid) );
额外说明
如果后续需要新增其他查询模式(比如通过email或username查询),可以考虑添加二级索引或者重新设计主键,但就当前仅通过uid查询的需求来说,只用uid做主键是最优解。
内容的提问来源于stack exchange,提问作者kpatel23
相关产品推荐
相关产品推荐

