常见的在创建数据时根据规则分库分表保存,查询时往往只支持按照id进行查询。
Nhmicro(开源地址为 )支持将分库分表中的数据进行分页查询,同时支持排序,支持连续性的向前向后翻页。
原理是根据不同的库分别进行(可带有排序)分页查询,Nhmicro将各个库返回结果合并后,内存中进行二次排序,再次分页后返回给客户端。
这样做可以将查询压力分散到多个读库中,且每个读库可以起不同线程并发查询,提高了查询速度,降低了热点。
分库分表合并查询接口:
/NhEsbServiceServlet?cmdName=Groovy&subName=MicroMergeQueryTemplate&groovySubName=getInfoList4Page
参数标识
参数名称
样例值
说明
originSql
原始查询sql
select * from <REP_VIEW_NAME> order by col1 desc
<REP_VIEW_NAME>执行时被替换为分表名称
memOrderStr
内存排序str
col1 desc
应该与原始sql中的一致
dbNameList
分库标识
default
配置的microDao实例标识,多个库用逗号分隔。
viewNameList
分表标识
test_merge_1,test_merge_2
每个库中可以有1个或多个分表,但要求每个库中的分表个数一致。
Test_merge_1中数据
Test_merge_2中的数据
合并查询后分页结果:
向后翻页