使用JAVA慢慢插入SQL

时间:2017-07-19 18:21:49

标签: java mysql

我正在尝试阅读,拆分成有意义的变量,然后将4Gb文本文件的信息插入到数据库中。样本1.2Mb的读取(以及需要时打印)需要几百毫秒,但将信息插入数据库需要几秒钟(30+)。我使用两个数据库(该文件包含两种不同类型的记录)。我的代码看起来像这样:

    try {
    reader = new BufferedReader(new FileReader(filename));
    openConnection();
    ch = reader.read();
    while (ch != -1) {
        if ((char)ch == '1') {
            sql = parseCliente();
            st.executeUpdate(sql);
        }
        else if ((char)ch == '2') {
            sql = parseRegistro();
            st.executeUpdate(sql);
        }
        else if (ch == -1) break;
        else {
            ch = reader.read();
        }
    }
    closeConnection();
}
catch (IOException e) {
    e.printStackTrace();
} catch (SQLException e) {
    e.printStackTrace();
}

我的代码实际上有效,但我需要更快的方法,否则操作需要几天时间!

1 个答案:

答案 0 :(得分:1)

我更改了策略并将处理后的数据加载到CSV文件中,然后使用LOAD DATA INFILE命令将其传输到DB。我的样本从37秒到不到1秒。