# 动态表名

随着业务量的增长,部分表的数据量过于庞大,可以设置保留少量数据的查询表,或者是根据时间段进行分表,由于表的结构是一致的,所以只需要更改表名即可。

TIP

例如 t_sys_log 系统日志表,随着访问量的增大,日志表的数据很快可以达到千万级,那么可以对表进行切分,一年一张表,且设置一张 t_sys_log_ro(ro == read-only,非固定)表,里面设置三个月的数据,便于快速查询。

# 单表替换表名

数据库中创建两张表分别为:t_test_at_test_a_ro,两表的表结构是一模一样的。

推荐使用改方法:fw.setTableName("t_test_a_ro"),或者也可以使用这种方式:fw.addTableName("t_test_a", "t_test_a_ro");

查询的时候可以这样替换

FindWrapper<TestAVo> fw = getWrapper(query, TestAVo.class);
fw.setTableName("t_test_a_ro");
IPage<TestADto> page = testAMgr.page(fw);

# 多表连查替换表名

使用方式:fw.addTableName("t_test_a", "t_test_a_ro");

查询的时候可以这样替换

FindWrapper<TestAVo> fw = getWrapper(query, TestAVo.class);
fw.addTableName("t_test_a", "t_test_a_ro");
fw.addTableName("t_test_b", "t_test_b_ro");
List<TestADto> list = testAMgr.listTestAATestB(fw);
赞助商