On Fri, July 28, 2006 11:58 am, Kieran Lal said:
On Jul 28, 2006, at 8:49 AM, Larry Garfield wrote:
- Flushing the cache is non-cheap. I recall a while back someone mentioning MySQL's "deferred" functionality, which could be useful here. (If it takes an extra half-second for a cache-flush to commit, that's probably not a problem for the business logic.)
Right. The key here is that we do not use auto-increment in this table. MySQL inserts and deletes assume auto-increments and there are some optimizations that can be done with the LOW-PRIORITY or QUICK for the DELETE command.
147.989 1.08 137 cache_get DELETE FROM cache WHERE expire != D
Could be: delete quick from cache where expire!=D; optimize cache;
It's been suggested that Drupal can support conditional non-ANSI SQL statements that at DB specific. Not sure how to check for MySQL version and if that should be done only once so we can run MySQL specific queries.
Cheers, Kieran
My thought would be something like db_query_lowpri(). The MySQL version of that would do the necessary modifications before running db_query() (INSERT DELAYED vs DELETE QUICK, or whatever), while the Postgres version would simply pass it straight through (or do Postgres-specific "run this whenever" modifications, about which I know nothing). Dries has already vetoed dedicated insert and delete API functions, which would have been the perfect place for a low-priority flag parameter. :-( --Larry Garfield