node mysql多表插入_node-mysql 插入多条数据

文档中有介绍

d8d25a57c761c5aabd1d4095f3fecbb3.png

如果你的值的对象

var d = [{

xxx: a,

xxx: b,

xxx: c

},{

xxx: a,

xxx: b,

xxx: c

},{

xxx: a,

xxx: b,

xxx: c

}];

//把对象的转成纯数组

var values = [];

d.forEach(function(n, i){

var _arr = [];

for(var m in n){

_arr.push(n[m]);

}

values.push(_arr);

})

如果只是数组就比较简单了

var values = [

[1,2,4],

[5,1,7]

];

var sql = "INSERT INTO xxx(a,b,c) VALUES ?";

mysql.query(sql, [values], function (err, rows, fields) {

callback(err, rows);

});

批量插入时最好同时插入,如果循环遍历查询性能会有很大影响。

下面是从网上找到的测试结果

Innodb引擎

InnoDB 给 MySQL 提供了具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。InnoDB 提供了行锁(locking on row level)以及外键约束(FOREIGN KEY constraints)。

InnoDB 的设计目标是处理大容量数据库系统,它的 CPU 利用率是其它基于磁盘的关系数据库引擎所不能比的。在技术上,InnoDB 是一套放在 MySQL 后台的完整数据库系统,InnoDB 在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。

测试环境

Macbook Air 12mid apache2.2.26 php5.5.10 mysql5.6.16

总数100W条数据

插入完后数据库大小38.6MB(无索引),46.8(有索引)

无索引单条插入 总耗时:229s 峰值内存:246KB

有索引单条插入 总耗时:242s 峰值内存:246KB

无索引批量插入 总耗时:10s 峰值内存:8643KB

有索引批量插入 总耗时:16s 峰值内存:8643KB

无索引事务插入 总耗时:78s 峰值内存:246KB

有索引事务插入 总耗时:82s 峰值内存:246KB

无索引Load Data插入 总耗时:12s 峰值内存:246KB

有索引Load Data插入 总耗时:11s 峰值内存:246KB

MyIASM引擎

MyISAM 是MySQL缺省存贮引擎。设计简单,支持全文搜索。

测试环境

Macbook Air 12mid apache2.2.26 php5.5.10 mysql5.6.16

总数100W条数据

插入完后数据库大小19.1MB(无索引),38.6(有索引)

无索引单条插入 总耗时:82s 峰值内存:246KB

有索引单条插入 总耗时:86s 峰值内存:246KB

无索引批量插入 总耗时:3s 峰值内存:8643KB

有索引批量插入 总耗时:7s 峰值内存:8643KB

无索引Load Data插入 总耗时:6s 峰值内存:246KB

有索引Load Data插入 总耗时:8s 峰值内存:246KB

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你的第一个问题是关于 node.js 和 MySQL 插入语句的语法错误提示,是吗? 首先,你需要确保你的 MySQL 语句的语法是正确的。MySQL 插入语句的基本语法如下: ``` INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); ``` 其中,`table_name` 是你要插入数据的名称,`column1, column2, column3` 是你要插入的列的名称,`value1, value2, value3` 是你要插入的值。 在 node.js 中,你可以使用 `mysql` 模块来连接和操作 MySQL 数据库。下面是一个示例代码,演示如何使用 `mysql` 模块来插入数据MySQL 数据库中: ```javascript const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'mydatabase' }); connection.connect((err) => { if (err) throw err; console.log('Connected!'); const sql = "INSERT INTO customers (name, address) VALUES ('John Doe', 'Highway 71')"; connection.query(sql, (err, result) => { if (err) throw err; console.log('1 record inserted'); connection.end(); }); }); ``` 在上面的代码中,我们创建了一个 `mysql` 连接对象 `connection`,并在连接成功后,使用 `connection.query()` 方法来执行 MySQL 插入语句。 如果你使用类似上面的代码来执行 MySQL 插入语句,但是仍然遇到语法错误提示,那么你需要检查你的 MySQL 语句是否正确。你可以尝试在 MySQL 命令行中执行你的 MySQL 语句,以确保它没有语法错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值