You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效筛选百万级activity_logs表中活动时段内下单的用户?

高效筛选活动时段内完成下单操作的用户SQL实现

需求说明

基于百万级数据量的activity_logs用户活动记录表,以及记录应用活动时段的offer_logs表,筛选出**在活动时段内完成下单核心操作(如check_out、payment)**的用户ID。

核心SQL实现

SELECT DISTINCT a.id
FROM activity_logs a
JOIN offer_logs b
  ON a.time BETWEEN b.time_on AND b.time_off
WHERE a.activity IN ('check_out', 'payment');

效率优化要点(针对百万级数据)

  • 给activity_logs建立复合覆盖索引:CREATE INDEX idx_activity_time_id ON activity_logs(activity, time, id);
    该索引先通过activity快速过滤出下单相关操作的记录,再用time完成时段匹配,最后直接返回id,避免回表查询,大幅提升查询速度。
  • 给offer_logs建立时段索引:CREATE INDEX idx_time_range ON offer_logs(time_on, time_off);
    即使offer_logs数据量不大,该索引也能加速时段匹配的判断逻辑,减少关联时的计算开销。

结果验证

上述SQL会匹配到用户2的check_out(10:11)和payment(10:12)操作均落在活动时段10:04-10:15内,最终返回唯一用户ID2,与预期结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:15:46