如何对分库后的数据进行分页查询

如何对分库后的数据进行分页查询,第1张

1、直接使用跨库的多表联合查询。不建议。

2、向6台数据库server均发送一个查询请求,然后对所有查询结果进行汇总,再处理分页逻辑。

3、建立一个总数据库,只负责维护主键和必要的索引,以供分页查询。

4、使用redis维护一个主键序列,分页 *** 作就是截取该序列的一部分,其结果就是主键id集合。拿到id后便可以映射到多台mysql服务器上查询数据了。但毕竟数据被分布式存储了,取到完整结果集必须要多次、多台的数据库访问,这个肯定是避免不了。

注:“多台”数据库访问的问题无解,但同台“多次”数据库访问的问题可以通过程序优化。

针对查询语句做处理,同时对请求页面地址做分析

list.aspx?pageid=5 //表示访问第五页

后台语言里,先对查询条件做预处理

pagepre=pagesize*4 //pagesize 用于表示分页大小,例如10,则前4页共有40条记录

查询语句

sqlcmd="select top "+pagesize+" from tabelname where id not in (select top "+pagepre+" from tablename order by id desc)"

*** 作原理为将当前页前显示的所有记录从数据查询结果中排除,也就是not in 后面的部分,然后从剩余的结果冲,读取pagesize大小的记录值。筛选条件、排序条件放在子查询中


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6704961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存