Skip to content

Instantly share code, notes, and snippets.

@17
Created December 26, 2015 08:19
Show Gist options
  • Save 17/a325e59aa75c223e656e to your computer and use it in GitHub Desktop.
Save 17/a325e59aa75c223e656e to your computer and use it in GitHub Desktop.
sql.js vs node-sqlite
var fs = require('fs')
var sqljs = require('sql.js')
var sqlite3 = require('sqlite3').verbose()
var count = 1e5
function randomString() {
var str = ''
var chars = 'abcdefghijklmnopqrstuvwxzyABCDEFGHIJKLMNOPQRSTUVWXZY0123456789 '
for (var i = Math.random() * 100; i > 0; i--) {
str += chars[Math.floor(Math.random() * chars.length)]
}
return str
}
var db = new sqljs.Database()
var t = new Date().getTime()
db.run('CREATE TABLE foo (id INT, txt TEXT)')
db.run('BEGIN TRANSACTION')
var stmt = db.prepare('INSERT INTO foo VALUES(?, ?)')
for (var i = count - 1; i >= 0; i--) {
stmt.run([i, randomString()])
}
db.run('COMMIT TRANSACTION')
console.log(new Date().getTime() - t) // 7124
var db = new sqlite3.Database(':memory:')
var t = new Date().getTime()
db.serialize(function() {
db.run('CREATE TABLE foo (id INT, txt TEXT)')
db.run('BEGIN TRANSACTION')
var stmt = db.prepare('INSERT INTO foo VALUES(?, ?)')
for (var i = count - 1; i >= 0; i--) {
stmt.run([i, randomString()])
}
stmt.finalize()
db.run('COMMIT TRANSACTION')
})
console.log(new Date().getTime() - t) // 3619
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment