1.增加索引 目的:加速查询总数和分页数据速度
create index 索引名 on 表名(列名);
2.优化分页sql格式(暂未用到,下面会再讲)
SELECT *
FROM (SELECT a.*, ROWNUM rn
FROM (SELECT *
FROM table_name) a
WHERE ROWNUM <= 40)
WHERE rn >= 21
3.自定义优化查询总数sql(count上面1中的增加了索引的字段)
mybatis文档解释如下
eg:
<select id="getResultList" resultMap="BaseResultMap">
select * from CAR_DISPATCHING_INFORMATION
<if test="@com.wonders.common.util.MyStringUtil@isNotNullOrEmpty(keyWord)">
where CAR_DISPATCHING_INSTITUTE = #{keyWord}
</if>
</select>
<select id="getResultList_COUNT" resultType="long">
select count(CAR_DISPATCHING_INSTITUTE) from CAR_DISPATCHING_INFORMATION
<if test="@com.wonders.common.util.MyStringUtil@isNotNullOrEmpty(keyWord)">
where CAR_DISPATCHING_INSTITUTE = #{keyWord}
</if>
</select>
4.自定义helperDialect
mybatis文档解释如下
这里用的是oracle数据库 可以直接搜OracleDialect
发现果然是实现这个虚类
自定义一个类并优化分页sql 用上面2提到的格式
最后在mybatis配置中指定这个自定义类的全限定名