mysql分表全局查询_mysql如何查询多样同样的表/sql分表查询、java项目日志表分表的开发思路/按月分表...

本文介绍了MySQL日志表按月水平分表的策略,包括如何进行分表查询、计算分表总记录数的方法以及新表的自动化创建。探讨了多种场景下的解决方案,如使用UNION ALL进行查询、按日期范围统计记录数、通过定时任务或乐观锁策略创建新表,以及在查询详细记录时处理同ID问题。
摘要由CSDN通过智能技术生成

之前开发的一个监控系统,数据库的日志表是单表,虽然现在数据还不大并且做了查询sql优化,不过以后数据库的日志表数据肯定会越来越庞大,将会导致查询缓慢,所以把日志表改成分表,日志表可以按时间做水平分表,我是按月分的,每个月一张表,这时候的问题是

数据库有多张同样的分表如何根据条件查询?

在进行分页的时候如何计算总记录数?如何查询出所有分表?

每个月的新表是如何创建?系统如何自动创建?

不确定哪个分表的情况如何查询某一条详细记录?

603a2843d54ff30dd89a67f3112e94b1.png

分表查询

分表查询可以用union或者union all进行查询

union和union all都是将两个结果集合 合并在一起

select * from log_2019_05 where createTime > '2019-05-01 10:00:00'

union all

select * from log_2019_06 where createTime < '2019-06-01 10:00:00'

在我们的java程序里面,根据用户的传的查询开始时间和结束时间,就可以解析出要查询那些表,然后拼接成我们要查的sql就可以了,举例:可以把要查的表放进数组里面,然后在mybatis的查询方法的xml里面循环遍历拼接出sql

注&

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值