Ask too general, generate static HTML page, squid reverse proxy, apache,mysql load balancer.
Can take the method of data caching, we usually at the time of the statistics, we need to calculate the original data on the basis of a series of operations, to get the final result, if each to do a query requires such a series of operations, when the amount of data is large, will inevitably bring many problems. can establish a result table, write a script, with crontab timed trigger script to go to the original table to fetch data, calculate, write to the result table, front-end query from the result table fetch data, this is a more common practice.
The use of distributed, multiple Apache, multiple MySQL, in fact, DNS load balancing, DNS based on the current user to resolve a number of IP ping value, the user is transferred to a single fastest server, or evenly distributed.
Money is not a problem, increasing bandwidth and improving hardware performance is also an option!
You can use the load balancing settings for Microsoft Windows Server systems
apache+mysql+php ways to achieve maximum load