例如:批量修改:一般有两种方式:
第一种:java代码service中处理,只反复调用一条sql
第二种:直接用mybatis文件sql中的foreach解决
想问一下这两种有啥区别,分别应用在什么场景下?
批次更新好处就是只需要和数据库进行一次通信,缺点是如果涉及的批量很大,那么就会导致执行速度变慢。
循环更新则能有效降低事务粒度,缺点就是每次执行都需要一次通信。
具体使用哪种方式则要更具实际的场景决定:如果你要操作10条数据,且都纳入同一个事务,那么很明显,批量更新更好。但是如果你要操作100W条数据,那么就很有必要分批进行操作。同样的如果你要操作10条数据,但是他们每一条都可以是单独的事务,且此数据属于热点数据,竞争严重,那么我认为单条更新更好,能有效的降低锁粒度。
能用第二种肯定就不会用第一种了。
第一种每次都需要与数据库建立连接,浪费资源。
肯定有区别,一个是一个sql执行多遍,第二种是只执行一条sql,第二种显然更好
使用数据库是正道,MySQL应该够用。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!