/sqlightning

SQLite3 ported to use LMDB instead of its original Btree code.

Primary LanguageC

SQLite3 ported to use LMDB instead of its original Btree code.

To set the LMDB mapsize in pages, use:

PRAGMA max_page_count=<integer>;

Using tool/speedtest.tcl in the SQLite source tree, the time to insert 1000 records on my laptop SSD was 22.42 seconds using the original code, and only 1.06 seconds using LMDB. Both tests were run 3 times, with results averaged. The actual runtimes were

Original    MDB
23.14        1.07
22.02        1.05
22.12        1.08

Tested at version 3.7.7.1.

More recent test results using 3.7.17 are on pastebin, summarized below:

SQLiteSQLightning
Operation times in microseconds, lower is better
Sync Seq Write8175.3716171.233
Sync Rand Write8308.7066231.249
Seq Write25.58731.778
Batch Seq Write7.4027.087
Rand Write33.23532.902
Batch Rand Write18.84713.754
Rand Read22.6457.685
Seq Read7.5571.551
Rev Seq Read7.4561.531