账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Java /mybatis/hibernate 将多条 mysql 语句放在一个 Dao 函数里会提升性能吗?
    52
    0

    譬如 java 里的一个 service,里面有事务

    @Service
    class ShopService{

    @Transactional
    public void doTransaction(int type){      
         List<Customer> customerList = customerDao.getByType(type);
         couponDao.assign(customerList);    
    }

    }

    我的理解是:

    1 java 程序将 customerDao.getByType(type);对应的 mysql 语句通过数据库连接发给数据库

    2 数据库产生结果,将 customerList 发给 java 程序

    3 java 程序将 couponDao.assign(customerList);对应的 mysql 语句通过数据库连接发给数据库

    4 数据库产生结果,将结果发给 java 程序

    这样,如果中间结果 customerList 很大的话,网络传输性能损耗比较大

    假如如下做法:

    @Service
    class ShopService{

    @Transactional
    public void doTransaction(int type){      
         couponDao.assignCustomersByType(type);    
    }

    }

    couponDao.assignCustomersByType(type); 对应两条 mysql 语句,一次性发给数据库去执行,让中间结果在数据库里,这样性能会有显著提升吗?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 清风与鹿 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部