V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mmdsun
V2EX  ›  问与答

老系统 20 张表 join, 100 多个字段 的优化方案?

  •  
  •   mmdsun · 2020-11-09 13:29:07 +08:00 via Android · 1631 次点击
    这是一个创建于 1486 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问一老管理系统有 20 张表 join100 多个字段,如何优化?

    之前有想过上 ES,但这个地方查了 20 多个表,意味着系统好多地方的 update 接口都要触发同步 ES 的操作,不然 es 的数据不是最新的。

    坠痛苦的是还有很多 mybatis xml 里拼接的 SQL 条件查询还得改。

    现在系统很慢。因为是老系统,想尽量改动小。

    有没有什么简单而有效的优化方案?

    阿里 Canal Binlog 同步到 ES 、

    应用层 join

    不知道怎么否可行。

    6 条回复    2020-11-09 17:55:16 +08:00
    zoharSoul
        1
    zoharSoul  
       2020-11-09 13:57:49 +08:00
    要不升级下配置算了?
    pierreorz
        2
    pierreorz  
       2020-11-09 14:11:44 +08:00   ❤️ 1
    暴露问题:
    1.看看领导层决策,能翻新重做最好
    2.加配置堆硬件
    3.底层大表先封装成视图,再做大的物理宽表(或者物化视图),以空间换性能
    4.重构老代码(可能花费比新做个还好大)
    mmdsun
        3
    mmdsun  
    OP
       2020-11-09 14:13:23 +08:00 via Android
    @zoharSoul 阿里云有个大数据版 SQL,不知道花钱买那个能不能支持这种多表的 SQL 。
    volvo007
        4
    volvo007  
       2020-11-09 15:49:22 +08:00 via iPhone
    我的妈……我这上百个表,大几百个字段……刚接手的时候第一次取数搞了我两个小时……
    SuperManNoPain
        5
    SuperManNoPain  
       2020-11-09 15:52:39 +08:00
    无计可施 宝贝
    cheng6563
        6
    cheng6563  
       2020-11-09 17:55:16 +08:00
    先看看有没有全表扫描吧,都走了索引限制了查询范围的话其实慢也慢不到哪去
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5915 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 02:16 · PVG 10:16 · LAX 18:16 · JFK 21:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.