2 ms·
That seems like good advice for smaller-scale web development, and extremely good advice for single-user applications. If you're working on a larger scale, or
by bunderbunder 8y ago
That seems like good advice for smaller-scale web development, and extremely good advice for single-user applications.
If you're working on a larger scale, or expect to be growing into a larger scale, though, then I think it's wise to skip straight to using a full-blown RDBMS. It's not about scalability, per se - very, very few projects need more performance than SQLite can deliver - so much as about manageability. A top-tier RDBMS will have a better story for resiliency and availability, it will have a more robust security model, it will handle concurrency better, it will have a more complete SQL dialect that allows you to handle more complex queries while keeping them more maintainable, etc.
This is one of the few spots where I think YAGNI doesn't apply. In expectation, it's cheaper to start on the RDBMS than it is to start small and grow as needed. The costs of switching databases are so high, the costs of outgrowing your data layer are even higher, and the costs of trying (and, usually, failing) to keep your data layer database-agnostic are still higher yet, and, in that particular problem domain, the likelihood of eventually being able to benefit from an industrial-grade RDBMS is so easy to anticipate.
- thijsvandien 8y agoI really like Firebird's model where you can either access a database file directly (like SQLite) or through a server process (like Postgres). Switch anytime you want. Best of both worlds. How lovely it would be if Postgres were to support something like that.