You need to enable JavaScript to run this app. Cassandra不支持关联查询时如何获取videos与comments两张表的关联数据
优惠活动
大模型
产品
解决方案
定价
更多

Cassandra不支持关联查询时如何获取videos与comments两张表的关联数据

Cassandra无关联查询下获取带评论视频的可行方案

你当前提供的是关系型数据库的建表逻辑,不符合Cassandra查询驱动建模的核心设计原则,针对你要获取20条带对应评论的视频的需求,可根据场景选择以下3种可行方案:


方案1:重构表结构(最高效,优先推荐)

利用Cassandra的静态列特性,直接按查询需求设计单表,一次查询即可拿到所需数据:

CREATE TABLE videos_with_comments (
    video_id bigint,
    -- 视频基础属性设为静态列,同一视频下所有评论行共享,无需重复存储
    userid bigint STATIC,
    name text STATIC,
    description text STATIC,
    location text STATIC,
    location_type int STATIC,
    added_date timestamp STATIC,
    -- 评论属性
    comment_id bigint,
    comment_user_id bigint,
    comment_text text,
    comment_time timestamp,
    PRIMARY KEY ((video_id), comment_time)
) WITH CLUSTERING ORDER BY (comment_time DESC);

使用逻辑:

  • 新增视频时写入该表的静态列字段,新增评论时对应写入该视频分区下的评论行
  • 单独维护一张latest_videos表用于快速拉取最新20条视频的ID,主键可设计为((time_bucket), added_date, video_id),time_bucket按天/小时拆分避免分区热点
  • 用拿到的20个视频ID批量查询videos_with_comments表,直接返回每个视频的基础信息+所有对应评论,无需任何关联操作

方案2:应用层手动关联(适合存量数据不愿改表的场景)

如果不想调整现有表结构,可在应用侧完成数据拼接:

  • 第一步:查询视频表获取20条目标视频数据,提取所有视频ID的集合
  • 第二步:以视频ID集合为条件,批量查询评论表(需提前给comments表的videoId字段建二级索引,或者新增comments_by_video辅助表,主键设计为((videoId), comment_time)提升查询效率),获取所有匹配的评论
  • 第三步:在应用代码中按videoId对评论做分组,和对应视频数据拼接即可

该方案需要两次查询,适合数据量较小的场景,性能略低于方案1。


方案3:固定字段冗余(适合仅展示少量评论的场景)

如果你的业务只需要展示每个视频的前N条最新评论(比如前3条),可以直接把评论字段冗余到视频表中:

CREATE TABLE videos_with_top_comments (
    video_id bigint PRIMARY KEY,
    userid bigint,
    name text,
    description text,
    location text,
    location_type int,
    added_date timestamp,
    -- 冗余最新3条评论字段,可按需调整数量
    recent_comment_1_userid bigint,
    recent_comment_1_text text,
    recent_comment_1_time timestamp,
    recent_comment_2_userid bigint,
    recent_comment_2_text text,
    recent_comment_2_time timestamp,
    recent_comment_3_userid bigint,
    recent_comment_3_text text,
    recent_comment_3_time timestamp
)

使用逻辑:

每次新增评论时异步更新视频表的最新评论字段,查询时仅需查一次视频表即可拿到所有需要的数据,性能最高,但灵活性差,仅适合评论展示条数固定的场景。


内容的提问来源于stack exchange,提问作者localdata01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 04:30:05