例如:批量修改:一般有两种方式:
第一种:java代码service中处理,只反复调用一条sql
第二种:直接用mybatis文件sql中的foreach解决
想问一下这两种有啥区别,分别应用在什么场景下?
例如:批量修改:一般有两种方式:
第一种:java代码service中处理,只反复调用一条sql
第二种:直接用mybatis文件sql中的foreach解决
想问一下这两种有啥区别,分别应用在什么场景下?
批次更新好处就是只需要和数据库进行一次通信,缺点是如果涉及的批量很大,那么就会导致执行速度变慢。
循环更新则能有效降低事务粒度,缺点就是每次执行都需要一次通信。
具体使用哪种方式则要更具实际的场景决定:如果你要操作10条数据,且都纳入同一个事务,那么很明显,批量更新更好。但是如果你要操作100W条数据,那么就很有必要分批进行操作。同样的如果你要操作10条数据,但是他们每一条都可以是单独的事务,且此数据属于热点数据,竞争严重,那么我认为单条更新更好,能有效的降低锁粒度。