我有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 ”},......}求怎么做
用事務循環插入、如果有一條插入失敗進行回滾
mysql模組、connection.beginTransaction是做事務
然後我這裡封裝了一個函數、對傳入的數組做循環插入或更新之類的操作、如果有一條失敗了就回滾、全對了就commit
文件中有介紹
如果你的值的物件
如果只是陣列就比較簡單了
批量插入時最好同時插入,如果循環遍歷查詢效能會有很大影響。
下面是從網路上找到的測試結果
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
無索引Load Data插入總耗時:12s 峰值內存:246KB有索引單條插入總耗時:242s 峰值內存:246KB
無索引批量插入總耗時:10s 峰值內存:8643KB
有索引批量插入總耗時:10s 峰值內存:8643KB
有索引批量插入總耗時:10s 峰值內存:8643KB
有索引批量插入總耗時:10s 峰值內存:8643KB
有索引批量插入總耗時:16s 峰值內存:8643KB
無索引事務插入總耗時:78s 峰值內存:246KB
有索引事務插入總耗時:82s 峰值內存:246KB
有索引Load Data插入總耗時:11s 峰值記憶體:246KB
MyIASM引擎插入後資料庫大小19.1MB(無索引),38.6(有索引)
無索引單條插入總耗時:82s 峰值內存:246KB
有索引單條插入總耗時:86s 峰值內存:246KB
無索引批量插入總耗時:3s 峰值內存:8643KB