I store Cap'n Proto objects directly into LMDB, and can read them without any memory allocation or deserialization cost. Freaking rocks.
I run an LMDB dataset many times the size of RAM, works great. Most data isn't recent, so the virtual memory cache works extremely well.
That's LMDB, as others have noted. I have used it in production for years, never once lost data. Insanely fast, low footprint, crash-proof.
(P.s. I have seen SQLite get corrupted regularly on mobile devices, which is why I no longer use it there.)
It's possible my SQLite configuration wasn't as crash-proof as the default install. I moved onto another project before I could investigate further.
I am using it with Nodejs, on t2.micro, handling 10+ million requests / day
Never had an issue. in production for one year already. Really good :-)
Apparently, in-memory DBs in now. They're fast and all, that's nice, but I'm still running on a machine with 8 Gigs of ram, and when the dataset starts to exceed that, I want an option other than "grab some more DDR3." I remember the fate of TinyMUD: on-disk operation must at least be an option for any DB I'd use for datasets of a non-fixed size.