Mybatis 使用分页查询亿级数据 性能问题 DB使用ORACLE

时间:2023-03-09 20:13:52
Mybatis 使用分页查询亿级数据 性能问题 DB使用ORACLE

一般用到了mybatis框架分页就不用自己写了

直接用RowBounds对象就可以实现,但这个性能确实很低

今天我用到10w级得数据分页查询,到后面几页就迭代了很慢

用于记录

1、10万级数据如下 [未用到分区] 查询速度不到1秒 reportId索引

<select id="getCompanyPageByReportId" resultType="com.newcore.example.models.web.vo.aml.tb.CompanyVo">
SELECT dataid,company_code1 AS companyCode1,company_code2 AS companyCode2,
Company_name AS companyName,getCodeName ('tb_Bord_flag', bord_flag) AS bordFlag
FROM (
SELECT t.dataid,t.company_code1,t.company_code2,t.Company_name,t.bord_flag,t.modifydate,t.modifytime,rownum rownu
FROM aml_tb_company t
WHERE rownum &lt;= (#{offset} * #{limit})
AND reportid = #{reportId}
ORDER BY modifydate DESC,modifytime DESC
) v_aml_tb_company
WHERE v_aml_tb_company.rownu &gt; ( #{offset} -1)* #{limit}
</select>

4亿级数据待优化

持续记录