Drupal - Memory-saving cache-clearing strategies for large sites?
Is there any intelligent and graceful way to clear all caches with Drupal besides simply clicking the button in the UI, or using drush cc all?
The cache actions module does that. It depends on rule. For exampple, you can setup a rule to clear a specific view when a node of type "x" has been added or updated. Checkout the docs for more details.
Also take a look at the cache graceful module - haven't tried it yet but looks interesting.
The main problem is that you are using MySQL to store cache data - for high-load sites this is very ineffective solution.
I advice to use Memcache instead. This will dramatically increase performance of cache system and give you 2 great benefits:
- Memcache is much faster for read and write operations that MySQL - all you cache operations (and full cache rebuild) will work faster.
- Because cache data not stored in DB anymore - clearing cache will not block any other MySQL queries.
Here is example of Memcache configuration for Drupal 7.