<p>Does SQLAlchemy support some kind of caching so if I repeatedly run the same query it returns the response from cache instead of querying the database? Is this cache automatically cleared when the DB is updated?</p>

<p>Or what's the best way to implement this on a CherryPy + SQLAlchemy setup?</p>

Not an answer to your second question, but from the comments in this link indicates that SQLAlchemy does not support cacheing :
http://spyced.blogspot.com/2007/01/why-sqlalchemy-impresses-me.html
Raven said...
```
```
Does SQLAlchemy do any kind of internal caching?

For example, if you ask for the same data twice (or an obvious subset
of the initially requested data) will the database be hit once or twice?

I recently wrote a caching database abstraction layer for an
application and (while fun) it was a fair bit of work to get it to a
minimally functional state. If SQLAlchemy did that I would seriously
consider jumping on the bandwagon.

I've found things in the docs that imply something like this might be
going on, but nothing explicit.
4:36 PM
```
```
Jonathan Ellis said...
```
```
No; the author of SA [rightly, IMO] considers caching a separate concern.

What you saw in the docs is probably the SA identity map, which makes it so 
if you load an instance in  two different places, they will refer
to the same object. But the database will still be queried twice, so it is
not a cache in the sense you mean.
```
```