Don’t forget SQLite

I love databases. Mostly this love is poured into MySQL these days. Used to be that everything I did was in SQLServer but thankfully those days are nearly gone. Yesterday I was lamenting the fact that I don’t know PostgreSQL well enough. I hear great things and if you’re looking for an “academically correct” implementation without the (mostly theoretical) shortcomings of MySQL, Postgres is the way to go. Well Jeremy overheard this and today brought me a big fat PostgreSQL book. Crap, you just know I’m gonna hafta read it.

When developing real world web applications, it’s rare to need more than what MySQL provides. And truthfully, many times even that is overkill. Enter SQLite. From their site…

SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine. Features include:

  • Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures.

  • Zero-configuration – no setup or administration needed.

  • Implements most of SQL92.  (Features not supported)

  • A complete database is stored in a single disk file.

  • Supports databases up to 2 terabytes (241 bytes) in size.

  • Small code footprint: less than 30K lines of C code, less than 250KB code space (gcc on i486)

  • Faster than popular client/server database engines for most common operations.

  • Sources are in the public domain.  Use for any purpose.

I’m guessing it doesn’t get nearly enough credit and I’m pretty sure it will get used by me quite a lot – now that I think about it.