What is the correct workflow for updating a high traffic site? I launched a site based upon Drupal 7.14 with at least 100 simultaneous users accessing the site at all times.

From the Devel module, I see that every page is generating about 200 to 400 Mysql requests.

First question: Is that a lot with 5 customs blocks per page? 

With the full caching system for anonymous user, the site is running smoothly.

I had to make two updates. For that, I put the site in maintenance mode, made my modifications and uploading new files, flushed the cache and put the site live again.
The first update did not generate any issues. But the second one, my MySQL server crashed due to a huge amount of simultaneous requests.

So how to avoid the flushing of all pages and updating properly JS, CSS and templates files?
What's is the correct workflow? Because after the maintenance, if 10 users request a non-cached page, it's more likely that the server won't be able to handle the load.

Does Drupal automatically regenerate the page cache if a JS, CSS or template associated file has been changed? So, is no flushing needed? The page would be correctly regenerated according to the cache configuration?

Here the server specifications:


ProLiant DL360 G5
CPU Intel Xeon 5133 (dual core) 2GHz
RAM 2×512Mb DDR2
Drush and command line are for rescue here:

1) To clear cache selectivelly, just run drush cc and drush will provide you with different options to select from, so you can clear everything or just theme registry, js/css, views, pages, etc.

2) To regenerate script use this bash script: http://dropbucket.org/node/241. It reads your sitemap.xml and revisits all pages, warming up cache.

3) Additionally, consider using Drush Entity Cache Loader http://drupal.org/project/drush_ecl, it doesn't generate page cache for you, but warms up content cache, so when authorized user loads the page, nodes and other entities are loaded from cache instead of being generated on the fly.