@Bass: Sigh,

Drizzle is MySQL. A few years ago some guys at Sun left the company and started the Drizzle project. Their goal was to refactor the MySQL code and optimize it's performance.

So there are some performance advantages with Drizzle over MySQL, but the road testing that MySQL has endured so far out weighs them.

So here is a list of tools that somebody gave me recently for my use in the Amazon cloud:

http://howtoforge.com/mysql5_master_master_replication_debian_etch

http://code.google.com/p/mysql-master-master/downloads/list

http://schemasync.org/

http://www.maatkit.org/

http://www.percona.com/docs/wiki/percona-xtrabackup:start

http://code.google.com/p/innotop/

So using some of these tools and replication with MySQL 5.x can more than make up for performance issues.

This book will also help you if you chose MySQL

Also keep in mind that nodes within regions in the Amazon cloud are hooked up with gigabit+ fiber, and even intra-region connections are fast.

One thing you can do to mitigate MySQL performance if you REALLY want to speed up your dynamic pages running on Apache or lightttpd behind nginx is this:

http://memcached.org/

Install memcached server, then save your queried results as memcached objects. Keep in mind that each of your Amazon instances can have it's own copy of SQL Queried results on it's own memcached server at localhost. So in this respect, you're using memcached as a CDN edge SQL object server.

Zend Framwork has native support for this:

http://framework.zend.com/manual/en/zend.cache.backends.html

Or if you're on Java, you could use BigTable and JDO with Data Nucleus. This is the prefered method for Google App Engine and what Java devs in Norcal like to use. It's far better than Hibernate. Using this method it's easy to persist data objects in classes using annotations and all the data storage is abstracted away in the driver tier. You simply persist elements in your Java classes using annotations.

VERSIONING:

You'll want to use git, it's the only really good free and open versioning system which will allow you to create local repositories and only sych to a master when you're ready. You can sit there and commit even when you're offline. If you're used to Tortoise SVN, there is also Tortoise git, so it's almost exactly the same interface and methods of use:

http://code.google.com/p/tortoisegit/

I hope this helps. This should be more than enough for a startup.

By the time you need more than this you should be making millions in revenue. And if you're not you probably have a Russian mob boss at DST looking out for you so go ahead and buy that new Ferrari and pound of cocaine. Nobody's going to touch you. Smiley