【问题标题】:Is possible use with node sqlite3 command import txt fil and improve bulk insert?是否可以使用 node sqlite3 命令导入文本文件并改进批量插入?
【发布时间】:2021-03-29 21:14:34
【问题描述】:

我正在尝试将 csv 文件从节点导入到 sqlite 文件。

我尝试通过 npm package sqlite3 执行以下命令。

 var db = new sqlite3.Database(':memory:');

 db.run('.import "/Users/avito/PhpstormProjects/blog/typescript/src/app/services/workflow_temp.txt"'
        + 'INTO TABLE workflow_1_temp'
        + 'FIELDS TERMINATED BY ","'
        + 'ENCLOSED BY "\'"'
        + 'LINES TERMINATED BY \'\\n\''
        + 'IGNORE 1 ROWS'
        + ')');

我收到了这个错误

Error: SQLITE_ERROR: near ".": syntax error

当我通过命令行尝试这个时,它有效。这个 npm 包可以使用 sqlite3 功能吗?

.import 比批量插入更快吗?我想改进批量插入。当我插入 cca 1 000 000~5 秒时。当我创建 .txt 文件然后我通过 sqlite3 .import file.txt 使用导入时可能写得更快吗?

【问题讨论】:

    标签: javascript node.js sqlite


    【解决方案1】:

    没有。 “交互式解释器提供了一组元命令”,这意味着 .import 是在 sqlite3 二进制文件中实现的,而不是在 JavaScript 包使用的库中。

    请记住,默认情况下,sqlite 使用自动提交模式,这意味着每个语句的事务。如果您每行执行一个插入速度很慢。如果您一次批量插入 1000 行,则可以大大加快速度:

    insert into t (c) values (v1), (v2), .... (v1000);
    

    【讨论】:

      猜你喜欢
      • 2013-01-06
      • 2012-03-31
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多