項目(nodejs)中需要一次性插入多筆數據到數據庫,數據庫是mysql的,由于循環插入的性能太差,就像使用批量插入的方法提高數據的插入性能。
批量插入的數據庫的表結構如下:

1.數據庫連接
var mysql = require('mysql');
// 數據庫信息
var connection = mysql.createConnection({
host : 'localhost',
user : '數據庫用戶名',
password : '數據庫登錄密碼',
database : '操作數據庫名'
});
將插入數據轉換成嵌套數組
例如要插入的兩條數據:
記錄1:
from:"index"
to:“www.alibaba.com”
status:1
is_new:0
記錄2:
from:"index1"
to:"www.google.com"
status:1
is_new:0
轉為一下格式:
var values = [
["index","www.alibaba.com",1,0],
["index1","www.google.com",1,0]
];
編寫插入語句
var sql = "INSERT INTO url(`from`,`to`,`status`, `is_new`) VALUES ?";
調用query函數完成數據的插入
connection.query(sql, [values], function (err, rows, fields) {
if(err){
console.log('INSERT ERROR - ', err.message);
return;
}
console.log("INSERT SUCCESS");
});
完整代碼:
var mysql = require('mysql');
// 數據庫信息
var connection = mysql.createConnection({
host : 'localhost',
user : '數據庫用戶名',
password : '數據庫登錄密碼',
database : '操作數據庫名'
});
var values = [
["index","www.alibaba.com",1,0],
["index1","www.google.com",1,0]
];
var sql = "INSERT INTO url(`from`,`to`,`status`, `is_new`) VALUES ?";
connection.query(sql, [values], function (err, rows, fields) {
if(err){
console.log('INSERT ERROR - ', err.message);
return;
}
console.log("INSERT SUCCESS");
});
同時在這里記錄一個基于事務的操作(還沒有實踐,具體效果不詳)
用事務循環插入、如果有一條插入失敗進行回滾

mysql模塊、connection.beginTransaction是做事務
然后我這里封裝了一個函數、對傳入的數組做循環插入或更新之類的操作、如果有一條失敗了就回滾、全對了就commit
總結
以上所述是小編給大家介紹的Node.js下向MySQL數據庫插入批量數據,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
您可能感興趣的文章:- Node.js實現連接mysql數據庫功能示例
- node.js平臺下的mysql數據庫配置及連接
- Node.js數據庫操作之查詢MySQL數據庫(二)
- Node.js數據庫操作之連接MySQL數據庫(一)
- 從零學習node.js之mysql數據庫的操作(五)
- Node.js操作mysql數據庫增刪改查
- Linux下為Node.js程序配置MySQL或Oracle數據庫的方法
- node.js 開發指南 – Node.js 連接 MySQL 并進行數據庫操作
- node.js如何操作MySQL數據庫