建网站流程 知乎,wordpress自适应画廊,建安培训官网,国内贸易在那个网站上做这里写自定义目录标题 前言一、背景介绍二、解决思路二、二张表的关联手法1、关联手法1 :使用JOIN2、关联手法 :使用 IN结论 前言
描述#xff1a;文本主要用来记录#xff0c;对大数据量表多表联合的分页查询效率的研究。
一、背景介绍
技术背景#xff1a;使用若依框架… 这里写自定义目录标题 前言一、背景介绍二、解决思路二、二张表的关联手法1、关联手法1 :使用JOIN2、关联手法 :使用 IN结论 前言
描述文本主要用来记录对大数据量表多表联合的分页查询效率的研究。
一、背景介绍
技术背景使用若依框架的前后端分离版本开发。 在项目中有一张预计100w数据量的表联合其他状态管理表做分页查询的任务。会导致前端页面的表格刷的非常慢。
二、解决思路
由于项目采用的是 pageHelper第三方的包。该包做分页查询会对sql语句进行封装一层然后进行 select count(1) { ...} 这会导致查总数的时间花销都好多s了。 于是我变自己封装方法查询总记录数。然后再传入分页参数进行分页的查询。虽然还是要1s多但是总比之前光查询总数都几十s来的好太多了。
二、二张表的关联手法
1、关联手法1 :使用JOIN
SQL1 SELECTcount(1)
FROMtable_a a
JOINtable_status ts
ON a.id ts.a_id2、关联手法 :使用 IN
SQL2
SELECTcount( 1 )
FROMtable_a a
WHEREid IN ( SELECT a_id FROM table_status) 测试结果经过多次测试加上时间查询条件总共40w条记录。方法二使用In 花了2s多方法一用join花了1s多。
但是要是添加具体的字段。结果就会反过来数据量越大差异越明显。
测试中查询总记录数40w条使用IN的方式要花2s多而使用JOIN方法需要花3s多。 测试sql如下
SQL1
LIMIT 346190,10结论
似乎2种方式各有各的特点。