ibatis中,用什么方式查询分页效率高?

问题描述

ibatis中,用什么方式查询分页效率高? 我的数据量比较大。

解决方案

ibatis 又不是数据库,它又不知道如何分页。。他只是一个sql builder比如mysql里面的分页是用limit offset来做的,你就用ibatis写一个limit offset好了其它类型的数据库以此类推。与其说分页的效率,不如说是你sql语句查询的效率如何,最简单看有查询有没有用到索引,在mysql里面用explain select xxxx from xxx where
解决方案二:
三层嵌套是oracle实现方式limit offset是mysql里用的
解决方案三:
我有些不解了,分页不是也面上指定现实多少数据么?limit offset不就完了么?? 嵌套的select 多麻烦阿,ibatis缓存结果神马的,多麻烦阿
解决方案四:
其他数据库可以采用类似的数据库分页方式,这种方式快
解决方案五:
如Oracle分页可以这么写,currentPage为当前页号,pageSize为每页记录数<select id="findUsers" parameterClass="HashMap" resultClass="HashMap"> select * from(select t.*, rownum rn from(select a.name,a.sex from usercount) t where rownum <![CDATA[<=]]> #currentPage# * #pageSize# ) where rn <![CDATA[>]]> (#currentPage# - 1) * #pageSize#</select>其中,分页部分语句是固定的,只需要替换内部的sql语句select * from(select t.*, rownum rn from(只需要替换这里的sql语句) t where rownum <![CDATA[<=]]> #currentPage# * #pageSize# ) where rn <![CDATA[>]]> (#currentPage# - 1) * #pageSize
解决方案六:
#数据量大应该考虑每次只读一页数据的方式来分页~在ibatis配置文件里写好分页SQL就好~效率的话 写好SQL可以看看执行计划~ 看有没有使用到索引,如果没,新建适当的索引
解决方案七:
ibatis分页解决方式是通过JDBC ResultSet的next方法或absolute方法来实现,效率和资源的消耗比不上sql语句层面的分页。给你一篇文章:http://www.blogjava.net/libin2722/articles/192504.html根据不同数据库实现的不同分页方言,建议参考Hibernate源码。

时间: 2024-11-03 07:04:33

ibatis中,用什么方式查询分页效率高?的相关文章

ibatis中如何实现动态查询

问题描述 ibatis中如何实现动态查询 解决方案 <if test="memeberID != null }"> ****** </if> 可以嵌套入SQL

ibatis中多表联接查询

 目前,我在做项目的时候,用到了spring + struts2 +ibatis 框架.平时用到的都是一张简单的表,来进行数据的增.删.改.查.而现在突然需要用到其它的一张表,或多张表进行联接查询,那么,在这种情况下,在xml映射文件中,就不能像单张表映射那样. 那么,我们需要怎么处理呢? 下面我就简单的来说明一下: 1.假如我数据库中有两张表:topo表和device表: 2.它们分别对应两个实体类:Topo.class和Device.class 3.我们需要做的就是把这两个实体类再整合出

SQL中多表联结查询的效率笔记

最近做网站的时候遇到一个问题,我需要输出B表和C表中的两个字段,不过纠结的是,程序所得到的参数是A表中的id,而A表与B表及C表关联的是另一个字段.如此一来,我就需要从3个表中读取数据,刚开始我想用SQL的多表联结查询,可是又担心效率太低.如果我先读出A表中与B.C关联的字段的值,再运行另一条SQL语句使用该值读取B.C表中的值效率是否会高一些?思索良久,最终决定写一个程序来测试. 以下代码以Discuz!X2.5的数据库为例,查询tid为1的主题发表者的username.  代码如下 复制代码

oracle中使用触发器实现查询分页功能

  oracle包分为包规范和包体 一:首先创建包规范 create or replace package p_pagewithgroup is -- Author : 肖伟 -- Created : 2014/3/18 -- Purpose : 分组分页过程 TYPE type_cur IS REF CURSOR; --定义游标变量用于返回记录集 PROCEDURE UP_GetRecordWithGroupByPage( tblName in varchar2, --表名 PageSize

SQL行号排序和分页(SQL查询中插入行号 自定义分页的另类实现)_MsSql

(一)行号显示和排序 1.SQL Server的行号 A.SQL 2000使用identity(int,1,1)和临时表,可以显示行号 SELECT identity(int,1,1) AS ROWNUM, [DataID] INTO #1 FROM DATAS order by DataID; SELECT * FROM #1 B.SQL 2005提供一个很好用的函数row_number(), 可以直接用来显示行号,当然也可以使用SQL 2000的identity SELECT row_num

thinkPHP使用post方式查询时分页失效的解决方法_php实例

本文实例讲述了thinkPHP使用post方式查询时分页失效的解决方法.分享给大家供大家参考,具体如下: 昨天晚上一直没有解决的php项目中的bug,就在刚才终于搞定,在这里还需要感谢各位大神给的帮助! 具体问题描述 最近遇到一个非常棘手的问题,也是因为刚入手thinkphp.在做项目的过程中,因为需要非常多的查询条件,如果以get方式提交表单的话,会因为url长度限制而报错,所以必须使用post方式提交表单数据,但是在分页的过程中,遇到了问题,因为thinkphp自带的分页是以a标签的形式,进

RDIFramework.NET中多表关联查询的分页实例

RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为指导思想,作为异质系统整合与互操作性.分布式应用提供了可行的解决方案. 分页非常的常见,基本任何项目都会涉及到分页,这没什么好谈的,大多数我们分页对单表的分页比较多,对多表的分页我们可以通过视图来实现,当然还有其他的方式,在这儿,我以一个实例展示下使用我们的RDIFramework.NET来实现多表联合查询分页的实现,我以Web的形式展示,WinForm方

ASP.NET中利用DataGrid实现高效分页

asp.net|datagrid|分页 ASP.Net中的DataGrid有内置分页功能, 但是它的默认的分页方式效率是很低的,特别是在数据量很大的时候,用它内置的分页功能几乎是不可能的事,因为它会把所有的数据从数据库读出来再进行分页, 这种只选取了一小部分而丢掉大部分的方法是不可去取的. 在最进的一个项目中因为一个管理页面要管理的数据量非常大,所以必须分页显示,并且不能用DataGrid的内置分页功能,于是自己实现分页. 下面介绍一下我在项目中用到的分页方法. 当然显示控件还是用DataGri

ASP.NET中利用DataGrid的自定义分页功能

asp.net|datagrid|分页 ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页 ASP.Net中的DataGrid有内置分页功能, 但是它的默认的分页方式效率是很低的,特别是在数据量很大的时候,用它内置的分页功能几乎是不可能的事,因为它会把所有的数据从数据库读出来再进行分页, 这种只选取了一小部分而丢掉大部分的方法是不可去取的. 在最进的一个项目中因为一个管理页面要管理的数据量非常大,所以必须分页显示,并且不能用DataGrid的内置分页功能,于是自己实现