V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
awanganddong
V2EX  ›  MySQL

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

  •  
  •   awanganddong · 2020-07-14 11:58:26 +08:00 · 1659 次点击
    这是一个创建于 1586 天前的主题,其中的信息可能已经有所发展或是发生改变。

    情景一

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

    情景二

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

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

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

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

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

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

    内存里面自己做好索引
    awanganddong
        2
    awanganddong  
    OP
       2020-07-14 16:17:27 +08:00
    现在想到的方案就是再新增一张冗余表,然后对广告请求表和响应表的数据做汇总。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   990 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:43 · PVG 04:43 · LAX 12:43 · JFK 15:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.