我需要在数据库中存储此数据结构:
Activity:
user_id: UUID ( Partition Key )
created_at: timestamp ( Clustering Key )
activity_id: UUID ( Clustering Key )
activity_data: map<string, string>
我获取数据的查询是这样的
SELECT * FROM activities WHERE user_id=SOME-UUID LIMIT 500;
据我所知,当cassandra在其文件中搜索一行时,即使使用limit,它也会将整个数据加载到内存中。
是真的吗?
如果是这样的话,考虑到我只想做一个查询(据我所知,复合分区键需要我做多个查询),我该如何保存数据
如果我还需要过滤“活动数据”字段中的值,我将如何存储数据?Map字段上的索引是否足够?
谢谢您。
1条答案
按热度按时间5lhxktic1#
是的,它合并了磁盘上的数据,并对客户机做出响应。如果启用,也会更新缓存。请澄清另外两个问题。