The biggest challenge in web development is not writing code, it's writing code that scales. By which I mean building a system that can run on several servers, etc.
Abstract your database layer so that your middle layer of code doesn't really need to know whether it's MySQL,SQLite, or whatever. In that abstraction, consider aspect-oriented issues like cacheing. Memcached, for example, should be considered for data that is read frequently and updated infrequently.