Whenever we make a web request to a CMS that does not have a serious caching system, the web server is put under a severe test, as it has to perform the following things:
Read the settings
Query the database to retrieve the data requested
Load the template
Replace parsed variables with the required data
Send everything to the client
The process, depending on the page complexity, could be very simple, or very heavy to perform.
A famous site with many concurrent requests, maybe even a powerful machine filled with RAM and CPUs will not be able to support so much work and cause the web server to hang.
The caching system is born to help the server to deploy applications more effectively.
Note
You can find some documentation on caching on Wikipedia at http://en.wikipedia.org/wiki/Cache.
Usually the bottleneck is caused by the query and template complexity. eZ Publish provides a system for caching at several levels:
Template cache
Template compile
View cache
We will learn about each of these...