# query cache is local to each mysqld, so counting hits # will not be the same when using one and several mysqld's # hence disable test for embedded -- source include/not_embedded.inc -- source include/have_query_cache.inc -- source include/have_multi_ndb.inc --disable_warnings drop table if exists t1, t2; --enable_warnings # Turn on and reset query cache on server1 connection server1; set GLOBAL query_cache_type=on; set GLOBAL query_cache_size=1355776; reset query cache; flush status; # Turn on and reset query cache on server2 connection server2; set GLOBAL query_cache_type=on; set GLOBAL query_cache_size=1355776; reset query cache; flush status; # Create test tables in NDB and load them into cache # on server1 connection server1; create table t1 (a int) engine=ndbcluster; create table t2 (a int) engine=ndbcluster; insert into t1 value (2); insert into t2 value (3); select * from t1; select * from t2; show status like "Qcache_queries_in_cache"; show status like "Qcache_inserts"; show status like "Qcache_hits"; # Connect server2, load table in to cache, then update the table connection server2; show status like "Qcache_queries_in_cache"; show status like "Qcache_inserts"; show status like "Qcache_hits"; select * from t1; show status like "Qcache_queries_in_cache"; show status like "Qcache_inserts"; show status like "Qcache_hits"; update t1 set a=3 where a=2; # Connect to server1 and check that cache is invalidated # and correct data is returned connection server1; show status like "Qcache_queries_in_cache"; show status like "Qcache_inserts"; show status like "Qcache_hits"; select * from t1; show status like "Qcache_queries_in_cache"; show status like "Qcache_inserts"; show status like "Qcache_hits"; drop table t1, t2; # Turn off query cache on server1 connection server1; set GLOBAL query_cache_size=0; # Turn off query cache on server2 connection server2; set GLOBAL query_cache_size=0;