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

2020-11-09 13:29:07 +08:00
 mmdsun

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

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

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

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

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

阿里 Canal Binlog 同步到 ES 、

应用层 join

不知道怎么否可行。

1405 次点击
所在节点    问与答
6 条回复
zoharSoul
2020-11-09 13:57:49 +08:00
要不升级下配置算了?
pierreorz
2020-11-09 14:11:44 +08:00
暴露问题:
1.看看领导层决策,能翻新重做最好
2.加配置堆硬件
3.底层大表先封装成视图,再做大的物理宽表(或者物化视图),以空间换性能
4.重构老代码(可能花费比新做个还好大)
mmdsun
2020-11-09 14:13:23 +08:00
@zoharSoul 阿里云有个大数据版 SQL,不知道花钱买那个能不能支持这种多表的 SQL 。
volvo007
2020-11-09 15:49:22 +08:00
我的妈……我这上百个表,大几百个字段……刚接手的时候第一次取数搞了我两个小时……
SuperManNoPain
2020-11-09 15:52:39 +08:00
无计可施 宝贝
cheng6563
2020-11-09 17:55:16 +08:00
先看看有没有全表扫描吧,都走了索引限制了查询范围的话其实慢也慢不到哪去

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

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

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

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

© 2021 V2EX