node.js - node-mysql 插入多条数据
问题描述
我有100条数据,怎么用node插入到mysql在中啊,
我找了一种这样的但是不好
var query = ’insert into news set ?’; connection.query(query,{title : ’node’,content : ’node’,nameConpany : ’woman’, time :’1512151’}
我的数据结构是这样{{“title ”,“content ”,“nameConpany ”,“time ”},{“title ”,“content ”,“nameConpany ”,“time ”},......}求怎么做
问题解答
回答1:用事务循环插入、如果有一条插入失败进行回滚

mysql模块、connection.beginTransaction是做事务
然后我这里封装了一个函数、对传入的数组做循环插入或更新之类的操作、如果有一条失败了就回滚、全对了就commit
回答2:文档中有介绍

如果你的值的对象
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 峰值内存:246KBMyIASM引擎
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
相关文章:
1. 为什么span的color非要内联样式才起作用?2. 小白问题getDay()3. html5 - H5做的手机分享页微信更新后,分享出去不再默认显示第一个图 作为缩略图4. golang - 用IDE看docker源码时的小问题5. docker start -a dockername 老是卡住,什么情况?6. 手机开发 - Android蓝牙模块连接后怎么接收数据?求助7. css - div设置float:left后高度设置自动会无效 ?8. 请问一下各位老鸟 我一直在学习独孤九贱 现在是在tp5 今天发现 这个系列视频没有实战9. 求救一下,用新版的phpstudy,数据库过段时间会消失是什么情况?10. 老师,请问我打开browsersync出现这个问题怎么解决啊?

网公网安备