Bläddra i källkod

提升查询速度
1. 新建索引
2. 全字段查询覆盖索引
3. 使用limit

semi 4 år sedan
förälder
incheckning
e1fa056141

+ 4 - 0
src/main/java/com/pavis/ai/kwp/ioc/mapper/SubImgCatMapper.java

@@ -2,8 +2,12 @@ package com.pavis.ai.kwp.ioc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.pavis.ai.kwp.ioc.model.SubImgCat;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 @Component
 public interface SubImgCatMapper extends BaseMapper<SubImgCat> {
+    List<SubImgCat> selectBySid(@Param("sid") String sid);
 }

+ 4 - 0
src/main/java/com/pavis/ai/kwp/ioc/mapper/SubImgMapper.java

@@ -2,8 +2,12 @@ package com.pavis.ai.kwp.ioc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.pavis.ai.kwp.ioc.model.SubImg;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 @Component
 public interface SubImgMapper extends BaseMapper<SubImg> {
+    List<SubImg> selectByGid(@Param("gid") String gid);
 }

+ 4 - 0
src/main/java/com/pavis/ai/kwp/ioc/mapper/SubImgRetMapper.java

@@ -2,8 +2,12 @@ package com.pavis.ai.kwp.ioc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.pavis.ai.kwp.ioc.model.SubImgRet;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 @Component
 public interface SubImgRetMapper extends BaseMapper<SubImgRet> {
+    List<SubImgRet> selectBySid(@Param("sid") String sid);
 }

+ 4 - 12
src/main/java/com/pavis/ai/kwp/ioc/service/impl/CallbackAdapterImpl.java

@@ -87,16 +87,12 @@ public class CallbackAdapterImpl implements CallbackAdapter {
     @Override
     public List<GoodsRet> gRet(String uploadId) {
         List<GoodsRet> rets = Lists.newArrayList();
-        QueryWrapper<UpGoods> ugWrapper = new QueryWrapper<>();
-        ugWrapper.lambda().eq(UpGoods::getUploadId, uploadId).orderByAsc(UpGoods::getId);
-        List<UpGoods> upGoods = upGoodsMapper.selectList(ugWrapper);
+        List<UpGoods> upGoods = upGoodsMapper.selectByUploadId(uploadId);
         if (CollectionUtils.isNotEmpty(upGoods)) {
             for (UpGoods upGood : upGoods) {
                 GoodsRet ret = new GoodsRet();
                 ret.setGoodsImg(upGood.getGoodsImg());
-                QueryWrapper<SubImg> wrapper = new QueryWrapper<>();
-                wrapper.lambda().eq(SubImg::getGoodsId, upGood.getId()).orderByAsc(SubImg::getId);
-                List<SubImg> subImgs = subImgMapper.selectList(wrapper);
+                List<SubImg> subImgs = subImgMapper.selectByGid(upGood.getId());
                 ret.setSubGoodsList(dto(subImgs));
                 rets.add(ret);
             }
@@ -111,13 +107,9 @@ public class CallbackAdapterImpl implements CallbackAdapter {
             Axis axis = JSONObject.parseObject(subImg.getAxis(), Axis.class);
             dto.setAxis(axis);
             dto.setFmcgScore(subImg.getFmcgScore());
-            QueryWrapper<SubImgRet> retQueryWrapper = new QueryWrapper<>();
-            retQueryWrapper.lambda().eq(SubImgRet::getSubImgId, subImg.getId()).orderByAsc(SubImgRet::getId);
-            List<SubImgRet> subImgRets = subImgRetMapper.selectList(retQueryWrapper);
+            List<SubImgRet> subImgRets = subImgRetMapper.selectBySid(subImg.getId());
             dto.setTop5Result(top5Result(subImgRets));
-            QueryWrapper<SubImgCat> catQueryWrapper = new QueryWrapper<>();
-            catQueryWrapper.lambda().eq(SubImgCat::getSubImgId, subImg.getId()).orderByAsc(SubImgCat::getId);
-            List<SubImgCat> subImgCats = subImgCatMapper.selectList(catQueryWrapper);
+            List<SubImgCat> subImgCats = subImgCatMapper.selectBySid(subImg.getId());
             dto.setTop3Category(top3Category(subImgCats));
             dtos.add(dto);
         }

+ 11 - 0
src/main/resources/mapper/SubImgCatMapper.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.pavis.ai.kwp.ioc.mapper.SubImgCatMapper">
+    <select id="selectBySid" resultType="SubImgCat">
+        select id, sub_img_id, score, tag
+        from sub_img_cat
+        where sub_img_id = #{sid}
+        order by id
+        limit 3
+    </select>
+</mapper>

+ 10 - 0
src/main/resources/mapper/SubImgMapper.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.pavis.ai.kwp.ioc.mapper.SubImgMapper">
+    <select id="selectByGid" resultType="SubImg">
+        select id, goods_id, axis, fmcg_score
+        from sub_img
+        where goods_id = #{gid}
+        order by id
+    </select>
+</mapper>

+ 11 - 0
src/main/resources/mapper/SubImgRetMapper.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.pavis.ai.kwp.ioc.mapper.SubImgRetMapper">
+    <select id="selectBySid" resultType="SubImgRet">
+        select id, sub_img_id, kwp_id, ref_image, score, tag
+        from sub_img_ret
+        where sub_img_id = #{sid}
+        order by id
+        limit 5
+    </select>
+</mapper>

+ 2 - 1
src/main/resources/mapper/UpGoodsMapper.xml

@@ -2,8 +2,9 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.pavis.ai.kwp.ioc.mapper.UpGoodsMapper">
     <select id="selectByUploadId" resultType="UpGoods">
-        /*#mycat:db_type=master*/ select *
+        /*#mycat:db_type=master*/ select id, upload_id, goods_img
                                   from up_goods
                                   where upload_id = #{uploadId}
+                                  order by id
     </select>
 </mapper>