1.利用mybatis的foreach拼接动态aql或者在java中写循环拼接,将数据分组拼接成大sql,比如可以每1万行数据拼接为一个insert语句,只要连接1000次数据库即可。
2.设置mybatis的sqlsession的ExecutorType为batch,如果用Jdbc则用executeBatch.
3.去掉表中的非主键索引。
4.取消该表自动提交。
5.利用多线程异步执行,但每个线程需要加一把锁,防止数据泄露或出现脏数据等现象。
本文介绍了一种通过批量插入数据来提高数据库操作效率的方法。具体包括使用MyBatis的foreach进行SQL拼接、设置ExecutorType为batch、去除非主键索引、关闭自动提交以及采用多线程并加锁等方式。
1.利用mybatis的foreach拼接动态aql或者在java中写循环拼接,将数据分组拼接成大sql,比如可以每1万行数据拼接为一个insert语句,只要连接1000次数据库即可。
2.设置mybatis的sqlsession的ExecutorType为batch,如果用Jdbc则用executeBatch.
3.去掉表中的非主键索引。
4.取消该表自动提交。
5.利用多线程异步执行,但每个线程需要加一把锁,防止数据泄露或出现脏数据等现象。

被折叠的 条评论
为什么被折叠?
