简介: 性能优化之指定select字段查询
-
面试题:select * 和 select 指定字段的区别
- 网络IO问题
select * 会查出所有的字段,有些是不需要的,当应用程序和服务器不在同一个局域网时, 字段过多会影响网络传输的性能
- 索引问题
在 指定字段有索引的情况下,mysql是可以不用读data,直接使用index里面的值就返回结果的。 但是一旦用了select *,就会有其他列需要从磁盘中读取才会返回结果,这样就造成了额外的性能开销
-
MybatisPlus指定查询字段
bannerMapper.selectList(new QueryWrapper<BannerDO>().select("id","name"));
指定参数查询
@Test
@DisplayName("banner-MyBatisPlus分页---指定参数查询")
public void test20() throws Exception {
QueryWrapper<BannerDO> wrapper = new QueryWrapper();
wrapper.eq("weight", 4);
//第1页,每页2条
Page<BannerDO> page = new Page<>(2, 2);
IPage<BannerDO> bannerDOIPage = bannerMapper.selectPage(page, wrapper.select("id","url"));
log.info("总条数:{}", bannerDOIPage.getTotal());
log.info("总页数:{}", bannerDOIPage.getPages());
//获取当前数据
log.info("" + bannerDOIPage.getRecords());
}