On 8/2/07, Don MacAskill <
don@...> wrote:
> The way it invalides the cache is "if TABLE has changed in any way, get
> rid of any cache entries referencing this TABLE":
[...]
> You can, of course, do much better than this yourself if you goal is to
> cache certain SQL queries.
It's pretty hard to correctly determine which values a SQL statement
is going to modify without building your own RDBMS. If you found a
way to do it for the general case, every database vendor would beat a
path to your door. I'm sure you could do it for certain special cases
in a specific application though.
I think most people skip worrying about invalidation and opt to only
cache things that they can stand to have displaying incorrect data
until the cache expires. Since computing a result from the source
data is slow (that's why you cache it), computing the results that are
affected by a change in the source data is also likely to be slow.
- Perrin