按天分表,查询慢

pujitan978 2020-03-02 03:10:56
表A,每天数据很大(800万行),现在一天一个表。web页面,可以按指定条件检索。
例如检索期间 2020/02/10 ~2020/02/26 机器ID = 5 状态是关机 的所有数据(200条),分页,每页显示20条。
检索时间 30秒。怎么提高检索速度呢?

tableList :根据期间取出所有表明 table1_20200210~table1_202002226
SELECT
YYYYY.id AS "id"
,YYYYY.name AS "name"
,YYYYY.status AS "status"
,YYYYY.machineId AS "machineId"
FROM (
<foreach collection="tableList" item="tableName" separator=" UNION ALL ">
SELECT
ZZZZZ.id AS id
,ZZZZZ.name AS name
,ZZZZZ.status AS status
,ZZZZZ.machineId AS machineId
FROM tableName AS ZZZZZ
WHERE ZZZZZ.deleted = 0
AND ZZZZZ.status = 2
AND ZZZZZ.machineId = 5
AND ZZZZZ.start_time >= '2020-02-10 09:11:06.0'
AND ZZZZZ.start_time < '2020-02-26 10:11:06.0'
</foreach>
) AS YYYYY
LEFT JOIN tbl_Machine AS machine
ON YYYYY.machineId = machine.id
LEFT JOIN tbl_team AS team
ON machine.area_id = team.id
limit 10




...全文
207 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zy_think123 2020-03-04
  • 打赏
  • 举报
回复
引用 5 楼 maradona1984 的回复:
[quote=引用 4 楼 general_zy 的回复:] 按天分表如楼上所说的,只有时间范围的第一天以及最后一天需要时间查询提交,其他的是不需要的。 还有不建议在数据库中使用join条件来完成,我的建议是直接在程序中查询每一天的数据,然后组装返回
如果系统中全是这种分库分表,那还不如直接用分表分库的中间件来做[/quote] 对,以前我们的做法是在程序中返回,其实有中间件更好,但是引入中间件也是要成本的,可能得综合考虑了。 更近一步,如果是统计信息之类的,可以提前计算,得到月表。这样查询还可以从月表查
maradona1984 2020-03-04
  • 打赏
  • 举报
回复
引用 4 楼 general_zy 的回复:
按天分表如楼上所说的,只有时间范围的第一天以及最后一天需要时间查询提交,其他的是不需要的。 还有不建议在数据库中使用join条件来完成,我的建议是直接在程序中查询每一天的数据,然后组装返回
如果系统中全是这种分库分表,那还不如直接用分表分库的中间件来做
zy_think123 2020-03-04
  • 打赏
  • 举报
回复
按天分表如楼上所说的,只有时间范围的第一天以及最后一天需要时间查询提交,其他的是不需要的。 还有不建议在数据库中使用join条件来完成,我的建议是直接在程序中查询每一天的数据,然后组装返回
qybao 2020-03-02
  • 打赏
  • 举报
回复
既然按天存储,那么除了第一个表和最后一个表可能需要时间条件,其它表应该不需要了吧?
这样的话可以去掉union的子表的start_time条件(少个where条件比较)
心怀啊 2020-03-02
  • 打赏
  • 举报
回复
去掉最后的左连接,在表上建立联合索引
baiy20151018b 2020-03-02
  • 打赏
  • 举报
回复
输入查询条件之后,按条件检索第一批数据(20条)。这里会有点耗时。待第一批20条数据加载完成之后,自动加载下一页,即后20条数据,但这时由于用户并没有点击“下一页”按钮,因此,只将后面的这20条数据放在前端缓存起来,用户点击“下一页”按钮则立即显示这后20条数据,同时继续接着往后再查20条,缓存起来不显示,依次类推。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧