用java程序查询1百万的数据库,如何加快分页跳转的速度?
一般有常用几种基本的方法可以借鉴:
第一:
hibernate中的oracle分页查询原代码:
StringBuffer pagingSelect = new
StringBuffer(100);
pagingSelect.append("select * from ( select
row_.*, rownum rownum_ from ( ");
pagingSelect.append(sql);
pagingSelect.append("
) row_ where rownum <= ?) where rownum_ > ?");
其实就是
select
* from ( select row_.*, rownum rownum_ from ( 你的查询语句 )
row_ where
rownum <= 结束行) where rownum_ > 开始行
第二:
这个要看
用哪个字段排序了,如果按照ID之类的,即是主键聚集索引,下面这个思想的分页很快,百万级别,分到后面100W条左右600毫秒,解决千万级别估计没啥
问题。
先取出第N条的ID,例如 select top 1000000 @ID = ID;
上句将占99%的查询成本。
然
后select top 10 * where ID >前面取出的ID即可
第三:
1.
总共只需要一个查询总页数: select count(proid) from sys.tblproduct,而不是每翻页就去查询一次
2.
SQL语句中只需要一次排序就可以了,不需要多次排序
select productname,proid,addtime,prodetail
from
(select productname,proid,addtime,prodetail, rownum as rid
from
(select productname,proid,addtime,prodetail from sys.tblproduct order
by proid)
where rownum <= &intPage * &intPageSize
)
where rid >= (&intPage-1) * &intPageSize+1
第四:
采用orcale的数据分区功能,分区后速度提升很明显。
另外一个关键是要合理的索引设置
硬件的配置也要跟上
第
五:
用分析函数row_number(order by XX)会比较快,比rownum的性能好一些
hibernate不用的
主要原因,我猜测是解析起来有点麻烦,必须在查询语句中间插一句,容易错。
问题的另一个关键是,有必要在任何条件下给客户看全部数据么?
客户关心么?
和客户交流,看他们能接受什么样的默认的查询条件限制,这来得实际多了。
分享到:
相关推荐
PostgreSQL 数据分页技术概述 本文总结了 PostgreSQL 数据分页技术的概述,介绍了在大数据量时如何高效地使用模糊查询和数据分页浏览,并根据后台设计降低用户界面的使用复杂程度。 一、数据分页浏览技术 数据...
数据层数据分页技术 用于数据分页的SQL语句方法,文件为SQL文件,可在SQL Server环境下打开,资料为Microsoft Webcaster上的讲座听课后的整理结果
在处理大量数据时,如百万级别的记录,分页技术是必不可少的,它能够提高用户体验,避免一次性加载所有数据导致的性能问题和浏览器负担。这个"ASP百万数据分页类"就是针对这种情况设计的,其目的是高效、便捷地实现...
本篇将深入探讨Java实现数据分页显示的核心技术和策略。 首先,我们要了解数据分页的基本概念。分页是将一个大型数据集分割成多个小部分,每个部分称为一页,用户可以逐页浏览,而不是一次性加载所有数据。在Web...
"hibernate分页.txt"则专门讲解了如何利用Hibernate进行数据分页。 总的来说,理解并掌握分页显示数据技术,对提升Web应用性能和用户体验有着显著的作用。开发者需要根据实际需求和项目特点,选择合适的分页实现...
在ASP(Active Server Pages)开发中,处理大量数据时,分页...记住,分页不仅仅是技术问题,更是用户体验的设计,合理的分页策略能让用户更愉快地浏览内容。在实际开发中,应根据项目需求和资源限制灵活应用这些方法。
在IT行业中,数据分页是一种常见的技术,尤其是在处理大量数据时,它能够有效地提高用户体验,减少网络传输的数据量,使得用户能够逐步加载和查看信息。本篇将详细讲解数据分页的相关知识点,以及如何实现一个分页...
总的来说,利用SQL Server的存储过程进行千万级数据分页查询,结合合理的索引策略和优化技巧,能够有效提升查询性能,降低系统负载,为用户提供流畅的浏览体验。请参考“分页.txt”和“使用方法.txt”文件,了解更多...
在.NET开发环境中,数据分页是一项常见的需求,特别是在构建Web应用程序时,为了提高用户体验和页面加载速度,通常需要对大量数据进行分页显示。本文将深入探讨如何在.NET中实现数据分页系统,包括基本原理、关键...
ASP.NET数据分页技术是Web开发中常用的一种优化性能的方法,尤其在处理大量数据时,分页能够提高页面加载速度并提升用户体验。在ASP.NET框架中,数据分页主要应用于GridView、ListView等控件,通过与后端数据库交互...
当我们在浏览网页时,不可避免地会碰到有的数据不能在一个页面完全显示出来的问题,这个时候就需要一种技术来使得数据分成若干页来显示,分页技术就应运而生。 本文主要探讨了一种基于Web的分页技术的研究与实现,...
在网页开发中,数据列表(Datalist)的分页技术是提高用户体验和优化网站性能的重要手段。当数据量庞大时,一次性加载所有数据不仅会消耗大量系统资源,还可能导致页面加载缓慢,甚至无法正常显示。因此,使用分页...
本节将从以下几个方面详细阐述实现千万级数据分页的关键技术点: 1. **SQL查询优化**:通过优化SQL语句来提高查询效率。 2. **动态生成SQL**:根据不同的参数动态生成SQL语句,实现灵活的分页功能。 3. **存储过程...
#### 知识点一:分页技术原理与应用背景 在软件开发特别是Web应用开发过程中,经常会遇到需要处理大量数据的情况。例如,在一个包含成千上万条记录的数据库表中进行查询时,一次性加载所有数据不仅会消耗大量的...
在网页开发中,数据分页是一项非常重要的功能,特别是在处理大量数据时,它能提高页面加载速度,优化用户体验。本文将深入探讨如何使用jQuery和AJAX实现高效的数据分页,结合给定的"ajax大量数据分页"标题和描述,...
因此,数据分页技术应运而生。 **Struts2.0 实现数据分页的原理** 在Struts2中,数据分页通常通过Action类和视图(JSP或Freemarker)配合完成。Action类负责从数据库中获取指定页码的数据,并将这些数据传递给视图...
为了解决这个问题,我们可以采用JS数据分页技术,它允许用户按需加载数据,提高用户体验并减轻服务器压力。 **一、JS分页原理** JS数据分页的基本思想是:前端根据用户的操作(如点击“下一页”按钮)动态请求...
数据分页是Web应用中常见的需求,特别是在处理大量数据时,为了提高用户体验和性能,分页可以帮助用户逐步加载和查看数据,而不是一次性加载所有内容。 实现Struts2.0中的数据分页主要涉及以下几个步骤: 1. **...
jQuery数据分页技术使得在Web应用中处理大量数据变得更加高效和便捷。通过选择合适的jQuery分页插件,结合后端API,你可以轻松实现定制化的数据分页功能,为用户提供流畅的浏览体验。记住,始终关注性能优化和用户...
本文将深入探讨“jQuery动态表格数据分页插件”,这款插件能够帮助开发者轻松实现动态表格数据的分页显示,同时支持自定义设置分页参数,以提高网页的性能和用户交互性。 首先,jQuery是一个广泛使用的JavaScript库...