使用分页查询来适应挖掘海量数据的需求
来源:互联网 发布:linux cf命令 编辑:程序博客网 时间:2024/05/17 09:45
现在各种主流的数据库都支持了分页查询的方式。
以Oracle为例,通过rownum关键字可以获取指定的行区间。
比如: Select * from XX.TABLE1 where rownum <= 100。不过Oracle的rownum有点特别的就是,rownum必须从1开始,如果直接这样写就不行了: Select * from XX.TABLE1 where rownum between 50 and 100。
而实际上,我们可以这样来写:SELECT * from (select n.*,rownum num from XX.TABLE1 n WHERE rownum <=100) where num >= 50;
以MySQL为例,提供了limit关键字,更加方便获取中间某区间的行数据。
比如: Select * from TABLE1 limit 50,100。 MySQL的limit关键字用起来比Oracle要方便一些。不过各个数据库的分页查询的速度我倒没有研究过,网上听一些高手们说,Oracle提供的分页查询效率要高一些。
Hibernate这样的数据持久层提供的分页查询,可以屏蔽掉各个不同的数据库之间具体SQL实现差异。
Hiberante这样的数据持久层工具一大好处就是可以屏蔽掉不同数据库的之间的某些细节差异。分页查询在不同的数据库上实现的SQL不一样,所以要统一,最好使用Hibernate这样的工具。
Query q = session.createQuery("from Cat as c");
q.setFirstResult(50);
q.setMaxResults(100);
List l = q.list();
网上到处都可以搜寻到关于Hibernate内部实现分页查询的解读的文章。可以看到,Hibernate内部也是通过rownum,limit这些关键字来实现分页的。
oracle: rownum
MSSQL:TOP
MYSQL:limit
以前用mysql时
select * from a order by b limit 6,1
取得按b排序的第6行a的值
很方便,还以为oracle中有,结果一试不行
select * from (select a.*,rownum as rno from a) where rno>20 and rno <30;
- 使用分页查询来适应挖掘海量数据的需求
- 使用分页查询来适应挖掘海量数据的需求
- 使用分页查询来适应挖掘海量数据的需求
- 使用分页查询来适应挖掘海量数据的需求 选择自 tangl_99 的 Blog
- 使用分页查询来适应挖掘海量数据之概论
- 海量数据分页查询
- 海量数据的分页
- 海量数据的查询优化及分页算法方案
- 海量数据的查询优化及分页算法方案
- MySQL详解----------海量数据分页查询优化
- MySQL详解----------海量数据分页查询优化
- 基于云计算的海量数据挖掘
- 海量查询的数据优化
- 海量数据的查询优化
- 海量查询的数据优化
- 海量查询的数据优化
- 海量查询的数据优化
- 海量数据分页存储过程及使用
- 使用正则表达式写的清除Html控制代码的方法
- 孙鑫VC学习笔记:第十一讲 如何把元文件保存到文件当中
- 用DHTML做的一个菜单特效
- 钩子(HOOK)机制的使用
- HOW TO:使用 System.IO 和 Visual C# .NET 读取文本文件
- 使用分页查询来适应挖掘海量数据的需求
- C#文件操作
- C语言学习书籍
- Oracle 9i 中的 SQL
- 自传
- 孙鑫VC学习笔记:第十一讲 图形重绘方法三 利用兼容DC
- FreeBSD学习笔记(一)
- IBM Power系列服务器处理器全了解
- 董事长在厕所里的思考