mybatis plus 百万级数据插入oracle
时间: 2023-07-31 10:06:09 浏览: 129
Mybatis+oracle
对于百万级数据插入Oracle,MyBatis Plus提供了一些方法来提高插入性能。以下是一些可以尝试的方法:
1. 批量插入:使用MyBatis Plus的批量插入方法,可以将多条数据一次性插入到数据库中,减少与数据库的交互次数,提高性能。
```java
List<Entity> entityList = new ArrayList<>();
// 构造待插入的数据列表
// ...
int batchSize = 1000; // 每批次插入的数据量
int totalSize = entityList.size();
int batchCount = (totalSize + batchSize - 1) / batchSize;
for (int i = 0; i < batchCount; i++) {
int fromIndex = i * batchSize;
int toIndex = Math.min((i + 1) * batchSize, totalSize);
List<Entity> subList = entityList.subList(fromIndex, toIndex);
// 执行批量插入
mapper.insertBatchSomeColumn(subList);
}
```
2. 关闭日志:在插入大量数据时,日志输出会消耗一定的性能。可以在MyBatis的配置文件中将日志输出级别设置为`OFF`,以减少日志对性能的影响。
```xml
<configuration>
<!-- 省略其他配置 -->
<settings>
<setting name="logImpl" value="LOG4J2" /> <!-- 设置日志输出方式 -->
<setting name="logLevel" value="OFF" /> <!-- 关闭日志输出 -->
</settings>
</configuration>
```
3. 调整数据库连接池配置:Oracle连接池的配置也会对插入性能产生影响。可以根据实际情况,调整连接池的参数,如最大连接数、最小空闲连接数等。
```properties
# Oracle连接池配置示例
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 连接池参数
spring.datasource.druid.initial-size=10
spring.datasource.druid.min-idle=10
spring.datasource.druid.max-active=100
spring.datasource.druid.max-wait=60000
```
4. 考虑分片插入:如果单次插入的数据量过大,可以将数据进行分片,分批插入到数据库中。这样可以减少单次插入的数据量,降低数据库的负载。
以上是一些优化插入性能的方法,希望对你有所帮助。
阅读全文