68 lines
No EOL
2 KiB
JavaScript
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);
|
|
}
|
|
}; |