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:
SQLite | SQLightning | |
---|---|---|
Operation times in microseconds, lower is better | ||
Sync Seq Write | 8175.371 | 6171.233 |
Sync Rand Write | 8308.706 | 6231.249 |
Seq Write | 25.587 | 31.778 |
Batch Seq Write | 7.402 | 7.087 |
Rand Write | 33.235 | 32.902 |
Batch Rand Write | 18.847 | 13.754 |
Rand Read | 22.645 | 7.685 |
Seq Read | 7.557 | 1.551 |
Rev Seq Read | 7.456 | 1.531 |