a 12 cpu machine with 16 gigs of ram? Are you planning to take over the world? :-)
First off, get yourself a decent estimate of the popularity of your website.
It's good to think of scalability, and you shouldn't underestimate the power you are going to need, but you should also not underestimate the power that a 'simple' machine can supply.
A 12 CPU sun with 16G of ram (that's just over 1GB per CPU, not a lot for a database) will set you back more than you make in a year, and the only advantage is that SUN hardware hardly ever fails and SUN has a very good support contract capability.
If you want something scalable, you might consider using Intel based linux servers. They cost a fraction of what that SUN machine would cost, and you can add more machines as required. Those machines (penguin power for ex) come with 1-2-4 CPU's, several Gigs of ram, scsi/ide disks, and are 1u-2u high.
Perfect for creating a rackmount serverpool/cluster.
So you can start with a dead-cheap single-server, and add servers as you go.
If it turns out that 4 cpu's was all you need, you don't have to buy more.
ONce you bought that SUN, you're stuck with it. 🙂
What kind of database operations will you be doing on each page?
If they are only simple selects, you'll get away with mysql on a low spec machine.
If you plan to do a lot of inserts too, then choose postgres. MySQL's horrible table-level-locking will do you in. (every insert locks the whole table, everything stops for that table)
If you need real power, you'll have to fork some dough and get Informix. Informix is expensive, but cheaper than oracle. (and IBM did not buy Informix for nothing, they knew Informix can do things DB2 would never be able to do)
Informix also supports database fragmentation, CPU affinity for the connection server and the engine itself (seperate dedicated CPU's for connectionbuilding and for the engine itself) Logical and physical logs, automated backups, incremental or full, and a complete set of SQL commands.
And if you are planning to grow big fast, you'll need data-consistency, the word that MySQL's creators fear most. (there's even a article in the MySQL manual that says that foreign keys are a bad thing giggle)
Buttttt... the fact that your site is dynamic does not mean that everything must be generated realtime. You can get huge performance boosts by 'rendering' (or caching) those parts of the pages that don't change much. For example, a list of news headlines only changes when a new headline arrives. So it's much faster to generate a static piece of HTML to represent the headlines, and generate a new piece of 'headlines' HTML every time a new headline arrives.
That saves you hundreds of database queries.