← Back to team overview

maria-developers team mailing list archive

Re: query cache issue

 

it's a memory in client side with query_parameters (sql_mode, query text,
schema used, and others flags that change results) + query_results
example in php
$query_cache= array(
"sql_mode=12341234124124;SELECT * from query_Table" => array(
  "tables_used"=>array("query_Table"),
  0=>array('a'=>1,'b'=>2,'c'=>3),
  2=>array('a'=>1,'b'=>2,'c'=>3),
  3=>array('a'=>1,'b'=>2,'c'=>3),
  4=>array('a'=>1,'b'=>2,'c'=>3),
  )
);
$query_tables_checksum=array("query_Table"=>'some_checksum');
the query_table_checksum is the part of query cache to invalidade a query
at client side, it must be checked at each query execution (this can be
done in less time or near time of a cached query)

before get from client side cache, query the server about table changes, if
the counter (or a checksum?)
if different, the query is invalid and must be removed from client side and
reexecuted, if not just get from query cache (in client side)
this add two news function at mysql protocol (one to get table
counters/checksums), and maybe must add a table counter that changes after
each update/delete/alter and save it (probably) at .FRM file, the other to
return the checksum at each query (with this we can see tables used in a
update for example and invalid the cache)

Follow ups

References