在SQL查询中group by并不能很好的解决需要特定不同维度的转换问题,使用union all拼接时,整体的查询效率不高。如何能更好的减少union all的使用以及精简查询,或是 其他解决方案
需求应用场景
提升效率的话可以把条件写到case when里面,做成横向临时表,再从临时表里查询
我下班了,回去搞,有点思路,十点左右你看看,
1.分区有考虑过吗?用的什么数据库?
我感觉这个要看你的应用场景是什么?
如果单纯的感觉innodb查的慢,可以启动加载缓存,更新的时候也更新缓存
也可以考虑将数据导入ES。
但是都要考虑一致性问题。
个人认为根据业务需求,应该在代码逻辑设计的时候也同步一份数据到综合的表里面来。因为查询单表的效率比union 好得多 。业务系统不是要越复杂越好。SQL越复杂,后期的运维成本会越高。
像这种问题一开始还是建议代码逻辑进行处理,sql太复杂维护起来麻烦,而且sql越复杂也是很容易引起性能问题,代码逻辑处理的话虽然码量大,但是性能是高于复杂sql的,因为它是单表查,而且单表查也容易处理