使用nhmicro使分库分表支持排序后的分页查询

来源:互联网 发布:600756浪潮软件腾讯网 编辑:程序博客网 时间:2024/06/17 06:47

常见的在创建数据时根据规则分库分表保存,查询时往往只支持按照id进行查询。

Nhmicro(开源地址为 https://github.com/jeffreyning/nh-micro )支持将分库分表中的数据进行分页查询,同时支持排序,支持连续性的向前向后翻页。

原理是根据不同的库分别进行(可带有排序)分页查询,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中的数据

 

合并查询后分页结果:

 

向后翻页


阅读全文
0 0
原创粉丝点击