首页 > 解决方案 > 从文件中读取,并异步保存到数据库

问题描述

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

有问题的文件是一个 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)));
    }

解析时间(低于 1 毫秒)与将其保存到数据库所需的时间(78.6 毫秒)相比是微不足道的。

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

知道走哪条路,走得更快吗?

标签: javamysqlspring-boot

解决方案


推荐阅读