我正在使用Spring Boot 2.x,Spring DATA REST,Hibernate创建REST服务器。 我从100k条记录的csv文件创建了一个导入。不幸的是,我无法达到体面的价值。 导入大约需要150秒。
我的代码背后的想法是将数据分成较小的块(在我的测试中,最大大小为250)并为每个块创建并提交事务。
public int bulkInsert(Collection<OphthalmicLens> lenses) {
StopWatch stopWatch = new StopWatch();
StopWatch stopWatchQuery = new StopWatch();
StopWatch stopWatchParameters = new StopWatch();
stopWatch.start();
int totalRecordsUpdated = 0;
try {
String insert = "INSERT INTO OphthalmicLens (`createdBy`,`createdDate`,`lastModifiedBy`,`lastModifiedDate`,`sid`,`version`,`manufacturer`,`manufacturerCode`,`name`,`sku`,`upc`,`cylinder`,`design`,`diameter`,`index`,`material`,`source`,`sphere`,`type`) VALUES ";
String[] values = { "" };
String onDuplicate = " ON DUPLICATE KEY UPDATE lastModifiedBy=VALUES(`lastModifiedBy`),lastModifiedDate=VALUES(`lastModifiedDate`)";
// Query query = entityManager.createNativeQuery(insert);
String createdBy = springSecurityAuditorAware.getCurrentAuditor().get();
int i = 0;
int chunkSize = 250;
Map<String, Object> params = new HashMap<String, Object>(chunkSize);
int chunkPage = 0;
if (lenses.size() < chunkSize) {
chunkSize = lenses.size();
}
for (i = 0; i < chunkSize; i++) {
if (i > 0)
values[0] += ",";
values[0] += "(:createdBy" + i + ",NOW(),:lastModifiedBy" + i + ",NOW(),UUID()" + ",:version" + i + ",:manufacturer" + i
+ ",:manufacturerCode" + i + ",:name" + i + ",:sku" + i + ",:upc" + i + ",:cylinder" + i + ",:design" + i
+ ",:diameter" + i + ",:index" + i + ",:material" + i + ",:source" + i + ",:sphere" + i + ",:type" + i + ")";
}
i = 0;
int totalIndex = 0;
for (OphthalmicLens lens : lenses) {
params.put("createdBy" + i, createdBy);
params.put("lastModifiedBy" + i, createdBy);
params.put("version" + i, 1);
params.put("manufacturer" + i, lens.getManufacturer());
params.put("manufacturerCode" + i, lens.getManufacturerCode());
params.put("name" + i, lens.getName());
params.put("sku" + i, lens.getSku());
params.put("upc" + i, lens.getUpc());
params.put("cylinder" + i, lens.getCylinder());
params.put("design" + i, lens.getDesign().toString());
params.put("diameter" + i, lens.getDiameter());
params.put("index" + i, lens.getIndex());
params.put("material" + i, lens.getMaterial().toString());
params.put("source" + i, lens.getSource().toString());
params.put("sphere" + i, lens.getSphere());
params.put("type" + i, lens.getType().toString());
/**
* For every chunk I do a commit, flush and I clean entity manager
*/
if (i >= (chunkSize - 1) && i % (chunkSize - 1) == 0) {
transactionTemplate.execute(new TransactionCallback<Void>() {
@Override
public Void doInTransaction(TransactionStatus status) {
try {
Query query = entityManager.createNativeQuery(insert + values[0] + onDuplicate);
stopWatchParameters.start();
for (String key : params.keySet()) {
query.setParameter(key, params.get(key));
}
stopWatchParameters.stop();
stopWatchQuery.start();
query.executeUpdate();
entityManager.flush();
entityManager.clear();
stopWatchQuery.stop();
} catch (Exception e) {
log.error("", e);
status.setRollbackOnly();
}
return null;
}
});
params.clear();
// log.info("Query for chunk {} executed.", totalIndex / (chunkSize - 1));
}
i++;
totalIndex++;
// reset index when I change chunk page
if (chunkPage != (i / chunkSize)) {
chunkPage = i / chunkSize;
i = 0;
}
}
} finally {
stopWatch.stop();
log.info("Import completed in {} seconds.", stopWatch.getTotalTimeSeconds());
log.info("Query time {} seconds.", stopWatchQuery.getTotalTimeSeconds());
log.info("Setting params time {} seconds.", stopWatchParameters.getTotalTimeSeconds());
}
log.info("Total records updated: {}", totalRecordsUpdated);
return totalRecordsUpdated;
}
每个块都创建一个像这样的查询:
INSERT INTO OphthalmicLens (`createdBy`,`createdDate`,`lastModifiedBy`,`lastModifiedDate`,`sid`,`version`,`manufacturer`,`manufacturerCode`,`name`,`sku`,`upc`,`cylinder`,`design`,`diameter`,`index`,`material`,`source`,`sphere`,`type`) VALUES (?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?),(?,NOW(),?,NOW(),UUID(),?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE lastModifiedBy=VALUES(`lastModifiedBy`),lastModifiedDate=VALUES(`lastModifiedDate`)
这是Mysql日志的屏幕截图,显示了如何执行查询:
我尝试使用不同的值更改batch_size,但结果变化不大。
这是消耗时间的详细信息:
Import completed in 155.93 seconds.
Query time 89.901 seconds.
Setting params time 22.199 seconds.
我阅读了许多有关该主题的文章,人们声称能够在10到20秒内插入10万行。我真的与那些价值观相去甚远!
您是否有一些建议可以在10到20秒内完成导入?
p.s:我正在将Mysql 5.7用作免费RDS微型实例上的数据库。