V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
mmdsun
V2EX  ›  问与答

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

  •  
  •   mmdsun · Nov 9, 2020 via Android · 2196 views
    This topic created in 2004 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    阿里 Canal Binlog 同步到 ES 、

    应用层 join

    不知道怎么否可行。

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