In short, use PostgreSQL both for testing and live. I recommend Postgres.app for Mac users: http://postgresapp.com/
In short, use PostgreSQL both for testing and live. I recommend Postgres.app for Mac users: http://postgresapp.com/
You should absolutely understand what you are doing but SQLite is good choice in many cases. Not everyone works on next Facebook.
So my point is this: Why not instead go for a database that was actually made to handle these kinds of situations? True, using PostgreSQL or MySQL won't in itself ensure that you'll survive a slashdotting/HN'ing, but your chances are better. (And obviously, your chances are even better if you use some sort of caching, but that's a different story).
E.g. Varnish.
Having said that, once your site goes truly high-traffic, you'll obviously need some caching. All I'm saying is that PostgreSQL/MySQL can easily handle moderately high traffic if your website is not a heavy CMS.
* SQLite itself has configurable cache and some other caching options:
a) http://www.sqlite.org/pragma.html#pragma_cache_size
b) https://www.sqlite.org/sharedcache.html
* Node.js has SQLite library with caching option (matter of single line). https://github.com/mapbox/node-sqlite3/wiki/Caching . It might be possible that other languages has something similar as well.
P.S. Here is one of sites running on SQLite http://skaityta.lt/ with some caching.
However, sqlalchemy is a godsend for testing. Tests that need a complicated server and are hard to run in a heterogenous dev team don't get run. It's much better to pick sqlite than to mock.