数据极大,导致多表关联查询数据慢。优先选用最直接有效的办法就是增加索引/优化sql/优化表结构 (网上有很多)
当使用sql优化无法解决慢的问题,可以考虑一下方案
方案一:使用 Elasticsearch,把查询结果导入到 Elasticsearch
一种增量实时同步,每次更新都同时更新 Elasticsearch中的数据,
另一种全量,每间隔一段时间同步到Elasticsearch中(不是实时数据)
方案二:数据分析(根据不同的需求场景分析数据的特性采用可行的解决办法)
如下查询数据,表更新频繁,
分析数据 按照日期分组,当天的会变化,当天以前的数据不会变化
每天跑批查询要展示的字段生成当天记录保存在单独第一张表中(或者redis中),实时查询时只查出当天的数据 并合并单独的表中的数据 返回到前端展示