为了账号安全,请及时绑定邮箱和手机立即绑定

有关mybatis里面对同一张表的操作的疑惑

有关mybatis里面对同一张表的操作的疑惑

芜湖不芜 2019-02-21 05:11:32
比如:查询会员列表的话,where后面带很多个if test条件是不是会影响效率,还是重写个sql,但是如果每个条件查询都重写sql,sql又太多了,显得很乱。该怎么选择?
查看完整描述

4 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

套着写if判断不会太慢吧,实在不行用视图呗

查看完整回答
反对 回复 2019-03-01
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

肯定有缓存的,应该不会太影响效率。
另外,有N个条件,那么对应的条件组合就有2^N个,你要写多少不同的sql呢?

查看完整回答
反对 回复 2019-03-01
?
临摹微笑

TA贡献1982条经验 获得超2个赞

1、where后面带很多个if test条件的情况在查询功能里很常见,十多二十个查询条件也很见惯;
2、MyBatis既然提供if test标签功能,肯定是有优化过得,比起你写多个SQL再通过Java代码判断分流,肯定效率高很多;
3、执行速度影响的大块是数据库服务器的硬件配置和数据库平台,作为普通程序员,还不需要考虑那么多,实在担心这个问题,也可以将自己的代码放在测试环境进行压力测试;
4、相比查询条件的变化,查询结果列的变化更影响效率,因为需要手动关闭缓存remapResults

<select id="verificationCode_select" parameterClass="String" resultClass="HashMap" remapResults="true">$sql$</select>

综上所述,不管行不行,先把代码和SQL写出来测试再说吧!

查看完整回答
反对 回复 2019-03-01
  • 4 回答
  • 0 关注
  • 499 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信