博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
海量分页的简单分析
阅读量:4929 次
发布时间:2019-06-11

本文共 928 字,大约阅读时间需要 3 分钟。

此文仅个人理解,不到之处望指出

     提出:easyui的datagrid组件有海量分页的内容,通过查询数据库的所有数据在表格进行分页浏览,因为数据量多,也叫海量分页,

             网上实现方式有很多,这里用存储过程.

     搭建: 使用sql server2012

             测试表的属性:

           

 

            插入数据:

           declare @x int

           set @x = 1
         while @x <= 50000  --插入5万条数据
         begin
           insert into TBInfors
          select '第'+CONVERT(varchar(20),@x)+'条数据标题',
          '第'+CONVERT(varchar(20),@x)+'个作者',GETDATE()
           set @x=@x+1
        end

 

       分页实现:

      

declare @pagesize int,@pageindex int;

set @pagesize = 10;

set @pageindex = 3;

select top (@pagesize) * from TBInfors

where id not in

(

   select top (@pagesize*(@pageindex-1)) id from TBInfors

   order by id

)

 order by id

 

分页分析:

  

分页所具备的条件参数

 

@pageSize   页面显示的数据量,也就是多少行

 

@pageIndex  页面的索引,显示第几页的数据

 

里面的查询为什么要-1,其实大有讲究

假设你要查询第二页的数据,显示的是11 – 20,首先你得过滤到前面10行的数据,

里面查询到10*(2-1) =  10行的ID,然后根据嵌套查询,查询不是这10行ID的

其他(id not in)的全部数据(表的所有数据),最后根据你需要在页面显示多少行数据,

用top过滤出来,这里,我们就可以抽象出规律出来,索引减1乘以显示数据量,是为了找到当前索引前面的数据量,

通过外面查询的id not in条件过滤到前面的数据,相对的,它会包含所有的数据,这个时候再用top裁剪需要显示多少行数据.

 

 

     

 

 

      

转载于:https://www.cnblogs.com/w-gao/p/6815435.html

你可能感兴趣的文章
PHPCMS V9{loop subcat(0,0,0,$siteid) $r}怎么解释?
查看>>
避免内存重叠memmove()性能
查看>>
编译android-4.3.1_r源代码并刷到自己的Galaxy Nexus I9250真机上
查看>>
jquery实现简单抽奖功能
查看>>
[leetcode]250. Count Univalue Subtrees统计节点值相同的子树
查看>>
理解Backtracking
查看>>
T3 光
查看>>
搭建交叉调试环境 arm-linux-gdb配合gdbserver
查看>>
使用Jsoup 抓取页面的数据
查看>>
使用命令批量对文件中出现的字符串进行替换
查看>>
C#获取URL参数值
查看>>
oracle extract 函数简介
查看>>
JVM——参数设置、分析
查看>>
Struts 框架 之 文件上传下载案例
查看>>
【重走Android之路】【路线篇(二)】知识点归纳
查看>>
graphviz入门
查看>>
JAVA编码(37)—— Java字符串转换为MAP对象
查看>>
jquery.validate.js 一个jQuery验证格式控件
查看>>
有表格的九九乘法表
查看>>
WPF 4 DataGrid 控件(自定义样式篇)
查看>>