nodejs mysql性能测试_nodejs sqlite3 insert函数性能测试。

nodejs sqlite3 insert函数性能测试。

var fs = require('fs');

var path = require('path');

var sqlite3 = require('sqlite3').verbose();

var strtxt = "www.jshaman.com";

//new sqlite3.cached.Database() instead of new sqlite3.Database().

var db = new sqlite3.cached.Database('test.db', sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, function(err) {

if (err) {

console.log('err:' + err);

} else {

console.log('success create database !');

}

});

db.serialize(function() {

db.run('CREATE TABLE IF NOT EXISTS node ( \

_id INTEGER PRIMARY KEY AUTOINCREMENT,\

node_id TEXT NOT NULL,\

parent_id TEXT,\

owner_id INTEGER,\

source_id TEXT,\

title TEXT,\

content TEXT,\

content_type INTEGER,\

node_version INTEGER,\

type INTEGER ,\

child_list TEXT,\

collapsed INTEGER,\

isShare INTEGER,\

isReference INTEGER\

);', function(err) {

if (err) {

console.log('create table node failed !');

} else {

console.log('create table node sucess !');

}

});

});

db.serialize(function() {

var start = new Date();

db.run("INSERT INTO node(node_id,title) VALUES (?,?);", ['123', strtxt], err => {

var end = new Date();

console.log('insert one record :', end.getTime() - start.getTime());

});

});

db.serialize(function() {

var start = new Date();

var stmt = db.prepare("INSERT INTO node(node_id,title) VALUES (?,?);");

for (var i = 0; i < 100; i++) {

stmt.run([i, strtxt + i]);

}

stmt.finalize(function(err) {

var end = new Date();

console.log('bulk insert 100 records :', end.getTime() - start.getTime());

});

});

db.serialize(function() {

var mysql = "";

for (var i = 0; i < 100; i++) {

mysql += "INSERT INTO node(node_id,title) VALUES (" + i + ",'" + strtxt + i + "');"

}

console.log(mysql);

var start = new Date();

db.run(mysql, [], err => {

var end = new Date();

console.log('bulk sql insert 100 records :', end.getTime() - start.getTime());

});

});

db.close();

测试结果:

单条数据插入350毫秒。

批量插入100条数据

使用prepare插入100条数据所需要的时间是8980毫秒;

使用run插入100条数据所需要的时间是9027毫秒;

未使用事务处理,插入1000条数据会在一分钟以上(使用事务会提升性能很多)。

nodejs源码加密,用JShaman!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值