从文件中读取,并异步保存到数据库

时间:2021-03-13 22:14:18

标签: java mysql spring-boot

我正在尝试寻找最有效的方法来解析大文件,并将结果保存在数据库中。

有问题的文件是一个 12_500_000 行的文本文件,其中包含来自服务器的日志。

日志看起来像这样

[notice] 2021-03-10T16:19:26.102551Z couchdb@127.0.0.1 <0.8999.68> 351ac014dd 87.92.211.148:5984 125.129.113.37 user1 GET /userdb 200 ok 8

我正在解析数据库名称 (userdb) 和动词 (GET)。

while ((line = reader.readLine()) != null) {

        String[] data = line.split("\\s+");

        service.save(new Request(data[8], data[9].substring(1)));
    }

与将其保存到数据库所需的时间(78.6ms)相比,解析时间(1ms 以下)微不足道。

我想异步执行此操作,但据我了解,您无法将记录异步保存到数据库中。

知道走哪条路更快吗?

0 个答案:

没有答案