4.1.2 • Published 6 years ago

junenchain-sqlite3 v4.1.2

Weekly downloads
2
License
MIT
Repository
-
Last release
6 years ago

better-sqlite3 Build Status

The fastest and simplest library for SQLite3 in Node.js.

  • Full transaction support
  • Geared for performance, efficiency, and safety
  • Easy-to-use synchronous API (faster than an asynchronous API... yes, you read that correctly)
  • Custom SQL function support
  • 64-bit integer support (invisible until you need it)

How other libraries compare

select 1 row  get() select 100 rows   all()  select 100 rows iterate() 1-by-1insert 1 row run()insert 100 rows in a transaction
better-sqlite31x1x1x1x1x
sqlite and sqlite38.4x slower3.7x slower28.2x slower3.6x slower6.0x slower

You can verify these results by running the benchmark yourself. Both npm/sqlite and npm/sqlite3 have nearly identical performance because they both use the same engine.

Installation

npm install --save better-sqlite3

If you have trouble installing, check the troubleshooting guide.

Usage

var Database = require('better-sqlite3');
var db = new Database('foobar.db', options);

var row = db.prepare('SELECT * FROM users WHERE id=?').get(userId);
console.log(row.firstName, row.lastName, row.email);

Why should I use this instead of node-sqlite3?

  • node-sqlite3 uses asynchronous APIs for tasks that are either CPU-bound or serialized. That's not only bad design, but it wastes tons of resources. It also causes mutex thrashing which has devastating effects on performance.
  • node-sqlite3 exposes low-level (C language) memory management functions. better-sqlite3 does it the JavaScript way, allowing the garbage collector to worry about memory management.
  • better-sqlite3 is simpler to use, and it provides nice utilities for some operations that are very difficult or impossible in node-sqlite3.
  • better-sqlite3 is much faster than node-sqlite3 in most cases, and just as fast in all other cases.

Documentation

License

MIT