之前开发的一个监控系统,数据库的日志表是单表,虽然现在数据还不大并且做了查询sql优化,不过以后数据库的日志表数据肯定会越来越庞大,将会导致查询缓慢,所以把日志表改成分表,日志表可以按时间做水平分表,我是按月分的,每个月一张表,这时候的问题是
数据库有多张同样的分表如何根据条件查询?
在进行分页的时候如何计算总记录数?如何查询出所有分表?
每个月的新表是如何创建?系统如何自动创建?
不确定哪个分表的情况如何查询某一条详细记录?
分表查询
分表查询可以用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
注&