不用左联接怎么实现以下业务需求

2020-07-14 11:58:26 +08:00
 awanganddong

情景一

一条广告请求,唯一请求 ID,返回一条广告

情景二

一条广告请求,唯一请求 ID,返回多条广告

广告请求附带参数 广告位,开发者,广告类型。 广告返回参数 广告主 ID,推广计划 ID,广告投放 ID,素材 ID

另外还有一张汇总表,包含以上所有的维度。

现在需求是对广告请求和响应表数据汇总,然后和汇总表做对应,最后聚合。

如果仅仅有一条广告数据的话,我可以一张表记录请求响应,然后获取所有维度的数据,然后 group by 不同维度,去广告统计表获取数据。但是现在分成两张表的话,我就必须 Left join 广告请求表,广告返回表来获取数据,这样会有笛卡尔积。项目 不允许,那我该怎么对数据进行拼合处理呢。

1666 次点击
所在节点    MySQL
2 条回复
tcfenix
2020-07-14 15:03:48 +08:00
看数据量大不大,小于 2g 的都可以直接在内存里面存放
然后定时刷新刷新
外加用 cannal 之类的 binlog 工具转消息队列增量刷新

内存里面自己做好索引
awanganddong
2020-07-14 16:17:27 +08:00
现在想到的方案就是再新增一张冗余表,然后对广告请求表和响应表的数据做汇总。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/689861

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX