zoukankan      html  css  js  c++  java
  • datagrid 数据分页的一个改进办法

      使用的示例表结构,表名:pagetable。其中,id是主键。

    id name age memo
    1 张一 20
    2 张二 20
    ....... 张..... 20
    7000 张N 20
    7000 张N+1 20

      常用的access分页就是用not in来搞定。试了下不太合用,数据量越大,时间越长。

        select top @pagesize * from pagetablewhere ID not in(select top @pagesize*@pageindex ID from pagetable order by ID desc)  order by ID desc。

      通过发现id是递增的主键索引,如果通过id排序,进行分页查找效果应该可以。记录可能存在删除的情况,id就不可能是连续递增的了。不能简单的用pagesize计算分页的id集合。

      我们只要计算出前页id的最大值,并找出大于这个id的pagesize项,就是每页要显示的内容。这里的第一页需要注意,第一页仅需要简单的top pagesize就能解决:

        select top @pagesize* from pagetable;

      第二页以后可以用下面的sql

        select top @pagesize* from pagetable where id > ( select max(id ) from (select top @pagesize*@pageindex id from pagetable order by id asc)) order by id asc。

      本分页办法适合主键是数字,字符和时间类型,数据库可以使sqlserver,oracle和access。

  • 相关阅读:
    从B树、B+树、B*树谈到R 树
    从LSM-Tree、COLA-Tree谈到StackOverflow、OSQA
    Linux Kafka源码环境搭建
    CentOS 关闭图形用户界面
    部署与管理ZooKeeper(转)
    spark 2.0.0集群安装与hive on spark配置
    hive on spark的坑
    Spark2.0.0源码编译
    hive spark版本对应关系
    CentOS7 设置集群时间同步
  • 原文地址:https://www.cnblogs.com/winfisher/p/1653204.html
Copyright © 2011-2022 走看看