目前查询数据需要1s以上,数据库每个表差不多有50多万条。
在20多万条做了一些索引,但过阵子就又慢下来了。
因为查询的时候设计到5张表联合查询,查询效率目前很低。
求大佬们指点。
计划按月分表,目前业务最多支持查询近3个月数据。
分表后,SQL需如何写呢?例如目前
A LEFT JOIN B ON *
LEFT JOIN C ON *
LEFT JOIN D ON *
LEFT JOIN E ON *
WHERE *
分表后如何写呢?不会是每个原表,都需要union?请大佬示例。
另外在程序段如何处理呢?
5 张表联查的 SQL,如果有一张表是经常有改动的,查询肯定会慢,看看能不能拆下 SQL。
如果只是统计需求,不要求实时性,可以创建一个表用来存储每天要查询的数据。每天用定时任务计算下存进去。(建议先优化 SQL,不得已再用这个)