博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
海量分页的简单分析
阅读量:4930 次
发布时间: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

你可能感兴趣的文章
PHP “引号兄弟”
查看>>
IOS代码布局(五) UICollectionView
查看>>
Django之Models(一)
查看>>
html的那些标签
查看>>
常见的几种数据加密与应用场景
查看>>
Android sendToTarget
查看>>
express框架结合jade模板引擎使用
查看>>
输出的巧妙思想(解题技巧)
查看>>
python装饰器
查看>>
获取两个日期之间的所有日期列表
查看>>
第一章 算法在计算中的作用
查看>>
在CocoaPod中安装BmobSDK
查看>>
webpack入门之教你搭建简单的框架
查看>>
开通的第一篇
查看>>
[学习] nofollow
查看>>
Javascript 方法apply和call的差别
查看>>
POJ Cow Exhibition
查看>>
disruptor实操作手冊(二)
查看>>
动态规划 - 活动选择问题
查看>>
Git 2.0 更改 push default
查看>>