数据库如何分表,及分表后业务如何处理?

目前查询数据需要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?请大佬示例。
另外在程序段如何处理呢?

阅读 2.3k
2 个回答

5 张表联查的 SQL,如果有一张表是经常有改动的,查询肯定会慢,看看能不能拆下 SQL。

如果只是统计需求,不要求实时性,可以创建一个表用来存储每天要查询的数据。每天用定时任务计算下存进去。(建议先优化 SQL,不得已再用这个)

这么点数据为什么要分表?这么点数据量没有必要分表
直接全查出来,代码中做合并,都完全够了吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题