Mybatis查询in的字段过多不走索引

mybatis查询in的字段有索引,比如说是主键查询, 但是in的字段过多导致索引失效,

这个时候可以考虑将in的数量变少, 200以内都可以, 在数据库方面采用 foreach unionall 的方式将数据集合查询出来

c 复制代码
Service层:
List<List<String>> zffsDdbhList = Lists.partition(ddbhList, MagicNumber.INT200);

Dao层:
List<HotelKhSjzfxx> getListByDdbhArray(@Param("ywdh") List<List<String>> ywdh);

sql.xml:
<select id="getListByDdbhArray" resultType="cn.vetech.center.hotel.entity.HotelKhSjzfxx">
  SELECT * from (
        <foreach collection="ywdh" item="ddbhArray" index="index" separator="union all">
                SELECT *  FROM hotel_kh_sjzfxx
                WHERE ywdh in
                <foreach collection="ddbhArray" item="ddbh" open="(" separator="," close=")">
                        #{ddbh}
                </foreach>
        </foreach>
  ) t
 </select>
相关推荐
好学且牛逼的马4 小时前
原生 JDBC + DbUtils + MyBatis 同场景 Demo(C3P0 数据源 XML 配置版)
xml·mybatis
代码栈上的思考4 小时前
MyBatis XML的方式来实现
xml·java·mybatis
Jaising6665 小时前
Mybatis Plus 主键生成器实现思路分析
数据库·spring boot·mybatis
Roye_ack7 小时前
【微服务 Day1】SpringCloud实战开发(Mybatis-plus + Docker)
spring cloud·docker·微服务·mybatis
記億揺晃着的那天8 小时前
MyBatis-Plus 单元测试中 Lambda Mock 的坑与解决
单元测试·log4j·mybatis
计算机学姐9 小时前
基于SSM的社区外来务工人员管理系统【2026最新】
java·vue.js·java-ee·tomcat·maven·intellij-idea·mybatis
北极糊的狐1 天前
若依系统报错net::ERR_CONNECTION_TIMED_OUT的原因
java·windows·sql·mybatis
LSL666_1 天前
12 MyBatis的连接池
java·服务器·mybatis
阿拉斯攀登1 天前
MyBatis 全面解析 & Spring Boot 集成实战
java·spring boot·mybatis·持久层框架