node-mysql慢插入多个查询

时间:2015-06-23 14:06:03

标签: javascript mysql node-mysql

我是node-mysql的新手,但由于它的简单性,我遇到了一个令人烦恼的速度问题。 我正在处理相当合理数量的数据(2000个mysql条目),并且当我使用多个查询时,通过connection.query()输入它变得非常慢。代码就是这个

var rows = xlsx.rows;
for (var i=0; i<rows.length; ++i) {
    var escaped = '';
    var values = [];
    var row = rows[i];
    escaped += 'INSERT INTO Main (name, value, enabled) VALUES ';

    var name = row['name'];
    var val = row['value'];
    var enabled = rows['enabled'];

    escaped += '(?,?,?);';
    values.push(name);
    values.push(val);
    values.push(enabled);

    connection.query(escaped, values);
}

输入所有行需要一分钟。当我在一个查询中使用多个语句时出现了同样的问题。我能够快速输入所有行的唯一时间,如果我使用一个字符串和一个条目,a.k.a。

INSERT INTO Main (name, value, enabled) VALUES (?,?,?), (?,?,?), (?,?,?)...

我只是以低效的方式使用查询吗?或者这里的查询速度是否存在实际问题?

1 个答案:

答案 0 :(得分:0)

正如评论中所提到的,这只是插入mysql数据的一种缓慢方式,它更容易使用

connection.query('INSERT INTO Table (col1, col2) VALUES ?', [insert], callback);

其中insert是包含多个条目值的变量