Counting hits for queries in query cache.
Added hit_count field to Query_cache_query and methods to get and increment it. The counter is incremented when query results are read from query cache.
This commit is contained in:
parent
5dd8e1bf2d
commit
cf3a74eb60
@ -961,7 +961,7 @@ inline void Query_cache_query::unlock_reading()
|
|||||||
void Query_cache_query::init_n_lock()
|
void Query_cache_query::init_n_lock()
|
||||||
{
|
{
|
||||||
DBUG_ENTER("Query_cache_query::init_n_lock");
|
DBUG_ENTER("Query_cache_query::init_n_lock");
|
||||||
res=0; wri = 0; len = 0; ready= 0;
|
res=0; wri = 0; len = 0; ready= 0; hit_count = 0;
|
||||||
mysql_rwlock_init(key_rwlock_query_cache_query_lock, &lock);
|
mysql_rwlock_init(key_rwlock_query_cache_query_lock, &lock);
|
||||||
lock_writing();
|
lock_writing();
|
||||||
DBUG_PRINT("qcache", ("inited & locked query for block 0x%lx",
|
DBUG_PRINT("qcache", ("inited & locked query for block 0x%lx",
|
||||||
@ -2142,6 +2142,7 @@ lookup:
|
|||||||
}
|
}
|
||||||
move_to_query_list_end(query_block);
|
move_to_query_list_end(query_block);
|
||||||
hits++;
|
hits++;
|
||||||
|
query->increment_hits();
|
||||||
unlock();
|
unlock();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -159,6 +159,7 @@ struct Query_cache_query
|
|||||||
unsigned int last_pkt_nr;
|
unsigned int last_pkt_nr;
|
||||||
uint8 tbls_type;
|
uint8 tbls_type;
|
||||||
uint8 ready;
|
uint8 ready;
|
||||||
|
ulonglong hit_count;
|
||||||
|
|
||||||
Query_cache_query() {} /* Remove gcc warning */
|
Query_cache_query() {} /* Remove gcc warning */
|
||||||
inline void init_n_lock();
|
inline void init_n_lock();
|
||||||
@ -184,6 +185,8 @@ struct Query_cache_query
|
|||||||
*/
|
*/
|
||||||
inline void set_results_ready() { ready= 1; }
|
inline void set_results_ready() { ready= 1; }
|
||||||
inline bool is_results_ready() { return ready; }
|
inline bool is_results_ready() { return ready; }
|
||||||
|
inline void increment_hits() { hit_count++; }
|
||||||
|
inline ulong hits() { return hit_count; }
|
||||||
void lock_writing();
|
void lock_writing();
|
||||||
void lock_reading();
|
void lock_reading();
|
||||||
bool try_lock_writing();
|
bool try_lock_writing();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user