我有一个包含50k + - 行的文本文件,每行包含必须作为单独字段从每行中拉出的数据。
该计划每天运行几次。
由于这个应用程序是可移植的,我使用SQLIite并逐个读取每条50k行,收集所需数据并插入SQlite DB文件。
我做了一些测试,发现仅通过行读取只需要花费10%的实际时间,当我在SQLite数据库中逐个插入所有数据时,所有开销都来了。
寻找改进建议。
答案 0 :(得分:3)
您可以使用事务提高性能,以便一次请求多个INSERT,而不是文本文件中每一行的一个INSERT。这将允许您批处理INSERT语句(尝试每批100个) - 这将显着提高性能。
答案 1 :(得分:1)
您可以通过以下方式提高速度:
TEMPORARY
表,用所有数据填充它,然后在最后发出INSERT INTO target_table SELECT * FROM temporary_table