CoastalCommitsPastes/server/node_modules/sqlite3/benchmark/insert.js
2022-03-06 16:46:59 -08:00

68 lines
No EOL
2 KiB
JavaScript

var sqlite3 = require('../lib/sqlite3');
var fs = require('fs');
var iterations = 10000;
exports.compare = {
'insert literal file': function(finished) {
var db = new sqlite3.Database('');
var file = fs.readFileSync('benchmark/insert-transaction.sql', 'utf8');
db.exec(file);
db.close(finished);
},
'insert with transaction and two statements': function(finished) {
var db = new sqlite3.Database('');
db.serialize(function() {
db.run("CREATE TABLE foo (id INT, txt TEXT)");
db.run("BEGIN");
db.parallelize(function() {
var stmt1 = db.prepare("INSERT INTO foo VALUES (?, ?)");
var stmt2 = db.prepare("INSERT INTO foo VALUES (?, ?)");
for (var i = 0; i < iterations; i++) {
stmt1.run(i, 'Row ' + i);
i++;
stmt2.run(i, 'Row ' + i);
}
stmt1.finalize();
stmt2.finalize();
});
db.run("COMMIT");
});
db.close(finished);
},
'insert with transaction': function(finished) {
var db = new sqlite3.Database('');
db.serialize(function() {
db.run("CREATE TABLE foo (id INT, txt TEXT)");
db.run("BEGIN");
var stmt = db.prepare("INSERT INTO foo VALUES (?, ?)");
for (var i = 0; i < iterations; i++) {
stmt.run(i, 'Row ' + i);
}
stmt.finalize();
db.run("COMMIT");
});
db.close(finished);
},
'insert without transaction': function(finished) {
var db = new sqlite3.Database('');
db.serialize(function() {
db.run("CREATE TABLE foo (id INT, txt TEXT)");
var stmt = db.prepare("INSERT INTO foo VALUES (?, ?)");
for (var i = 0; i < iterations; i++) {
stmt.run(i, 'Row ' + i);
}
stmt.finalize();
});
db.close(finished);
}
};