On 8/2/07, Don MacAskill <[EMAIL PROTECTED]> 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
