本文主要是介绍使用nhmicro使分库分表支持排序后的分页查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
常见的在创建数据时根据规则分库分表保存,查询时往往只支持按照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中的数据
合并查询后分页结果:
向后翻页
这篇关于使用nhmicro使分库分表支持排序后的分页查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!