node.js - node-mysql 插入多条数据
黄舟
黄舟 2017-04-17 16:33:51
0
2
797

我有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 ”},......}求怎么做

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(2)
左手右手慢动作

用事務循環插入、如果有一條插入失敗進行回滾

mysql模組、connection.beginTransaction是做事務

然後我這裡封裝了一個函數、對傳入的數組做循環插入或更新之類的操作、如果有一條失敗了就回滾、全對了就commit

洪涛

文件中有介紹

如果你的值的物件

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
有索引批量插入總耗時:10s 峰值內存:8643KB
有索引批量插入總耗時:10s 峰值內存:8643KB
有索引批量插入總耗時: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🎜
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板