不同数据库分页技术的实现及高效率分页技术三方案

数据库
当浏览的数据量较大时,分页显示是个非常实用的方法。本文主要介绍了不同数据库中分页技术的实现以及能够提高效率的分页技术的三个方案,希望能够对您有所帮助。

数据库分页技术能够帮助浏览者更好的查看信息,不同数据库实现分页时的方法也各有不同。本文我们主要介绍几种不同数据库分页显示的实现方法以及高效率分页技术的三个方案,接下来我们就开始介绍。

不同数据库分页技术的实现代码:

1.Oracle:select * from ( select row_.*, rownum rownum_ from ( query_SQL ) row_ where rownum =< max) where rownum_ >= min

2.SQL Server:select top @pagesize * from tablename where id not in (select top @pagesize*(@page-1) id from tablename order by id) order by id

3.MySQL:select * from tablename limit position, counter

4.DB2:select * from (select *,rownumber() as ROW_NEXT from tablename) where ROW_NEXT between min and max

高效率的分页技术三方案:

1.分页方案一:(利用Not In和SELECT TOP分页)效率次之

语句形式:

 

 

  1. SELECT TOP 10 * FROM TestTable  
  2.  
  3. WHERE(ID NOT IN (SELECT TOP 20  id FROM  TestTable  ORDERBY  id))   ORDERBYID  
  4.  
  5. SELECT  TOP 页大小 * FROM TestTable  
  6.  
  7. WHERE( ID NOT IN (SELECT  TOP  每页大小-1*待查询页数-1  id  FROM  表 ORDERBY  id)) ORDERBYID 

 

思路:先查询出待查询页之前的全部条数的id,查询ID不在这些ID中的指定数量条数。

2.分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高

语句形式:

 

  1. SELECT  TOP  10 *   FROM  TestTable  
  2.  
  3. WHERE(ID>(SELECT MAX(id) FROM(SELECT TOP20 id  FROM  TestTable ORDERBYid)AS T))ORDERBY ID  
  4.  
  5. SELECT  TOP  页大小* FROM  TestTable  
  6.  
  7. WHERE(ID>(SELECT MAX(id) FROM(SELECT TOP 每页大小*待查询页数-1  id FROM 表  ORDERBY id)AS T)) ORDERBY ID 

 

思路:先获得待查询页的之前全部条数id,获得它们当中最大的ID号,以此最大ID号为标志,查找比这个ID号大的指定条数。

3.分页方案三:

 

  1. SELECT TOP PageSize * FROM(SELECT TOP nPage*PageSize * from YOURTABLE order by id)as a order by id desc  
  2.  
  3. SELECT TOP 每页条数 * FROM (SELECT TOP 待查询页*每页条数) * from YOURTABLE order by id)as a order by id desc 

 

思路:先正排序查询出待查询页之前(包括当前页)的全部条数,然后将其倒排序,取指定条数。

关于不同数据库分页技术的实现方案以及高效率的分页技术三方案的介绍就到这里了,希望本次的介绍能够带给您一些收获,谢谢!

【编辑推荐】

  1. Oracle数据库如何创建对象类型和对象类型表
  2. Oracle数据库远程连接设置的四种方法及其注意事项
  3. SQL Server数据库如何按百分比查询出表中的记录数
  4. Oracle数据库如何查看当前用户角色权限及默认表空间
  5. MySQL数据库中COUNT(*)和DISTINCT的使用及效率研究
责任编辑:赵鹏 来源: 博客园
相关推荐

2011-08-05 13:29:04

分页

2011-08-15 10:22:19

分页查询数据库

2012-07-23 14:30:33

Oracle

2009-08-04 14:23:36

ASP.NET查询分页

2010-07-05 09:14:37

SQL Server数

2010-05-13 10:47:44

MySQL数据库查询

2016-08-02 11:03:22

数字 系列

2010-05-21 13:48:36

MySQL数据库

2010-06-17 09:15:02

MySQL数据库查询

2010-06-11 12:32:57

MySQL数据库查询

2011-08-29 10:55:03

SQL Server分页存储过程优化效率分

2010-05-18 16:58:31

MySQL数据库

2010-04-22 16:00:45

Oracle数据库

2010-05-27 18:36:13

配置MySQL

2009-05-15 10:11:55

数据库查询查询性能分页浏览

2010-09-06 11:40:06

SqlServer语句

2011-04-19 11:02:57

数据库分页

2010-07-01 12:44:52

SQL Server数

2010-06-01 17:14:28

2012-03-28 11:17:48

JavaSSHJSP
点赞
收藏

51CTO技术栈公众号