请问一老管理系统有 20 张表 join100 多个字段,如何优化?
之前有想过上 ES,但这个地方查了 20 多个表,意味着系统好多地方的 update 接口都要触发同步 ES 的操作,不然 es 的数据不是最新的。
坠痛苦的是还有很多 mybatis xml 里拼接的 SQL 条件查询还得改。
现在系统很慢。因为是老系统,想尽量改动小。
有没有什么简单而有效的优化方案?
阿里 Canal Binlog 同步到 ES 、
应用层 join
不知道怎么否可行。
1
zoharSoul 2020-11-09 13:57:49 +08:00
要不升级下配置算了?
|
2
pierreorz 2020-11-09 14:11:44 +08:00 1
暴露问题:
1.看看领导层决策,能翻新重做最好 2.加配置堆硬件 3.底层大表先封装成视图,再做大的物理宽表(或者物化视图),以空间换性能 4.重构老代码(可能花费比新做个还好大) |
3
mmdsun OP @zoharSoul 阿里云有个大数据版 SQL,不知道花钱买那个能不能支持这种多表的 SQL 。
|
4
volvo007 2020-11-09 15:49:22 +08:00 via iPhone
我的妈……我这上百个表,大几百个字段……刚接手的时候第一次取数搞了我两个小时……
|
5
SuperManNoPain 2020-11-09 15:52:39 +08:00
无计可施 宝贝
|
6
cheng6563 2020-11-09 17:55:16 +08:00
先看看有没有全表扫描吧,都走了索引限制了查询范围的话其实慢也慢不到哪去
|