oracle+mybatis百万级分页优化

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配置中指定这个自定义类的全限定名
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值