📄 query_cache_notembedded.test
字号:
-- source include/have_query_cache.inc-- source include/not_embedded.inc## Tests with query cache#set GLOBAL query_cache_size=1355776;# Reset query cache variables.flush query cache; # This crashed in some versionsflush query cache; # This crashed in some versionsreset query cache;flush status;--disable_warningsdrop table if exists t1, t2, t3, t11, t21;--enable_warnings## FLUSH QUERY CACHE#create table t1 (a int not null);insert into t1 values (1),(2),(3);create table t2 (a int not null);insert into t2 values (1),(2),(3);select * from t1;select * from t2;insert into t1 values (4);show status like "Qcache_free_blocks";flush query cache;show status like "Qcache_free_blocks";drop table t1, t2;# With join results...create table t1 (a text not null);create table t11 (a text not null);create table t2 (a text not null);create table t21 (a text not null);create table t3 (a text not null);insert into t1 values("1111111111111111111111111111111111111111111111111111");insert into t2 select * from t1;insert into t1 select * from t2;insert into t2 select * from t1;insert into t1 select * from t2;insert into t2 select * from t1;insert into t1 select * from t2;insert into t2 select * from t1;insert into t1 select * from t2;insert into t2 select * from t1;insert into t1 select * from t2;insert into t2 select * from t1;insert into t1 select * from t2;insert into t2 select * from t1;insert into t1 select * from t2;insert into t2 select * from t1;# t11 and t21 must be over 4Kb (QUERY_CACHE_MIN_RESULT_DATA_SIZE)insert into t11 select * from t1;insert into t21 select * from t1;insert into t1 select * from t2;insert into t2 select * from t1;insert into t1 select * from t2;#results of t3 must be > 0.5Mbinsert into t3 select * from t1;insert into t3 select * from t2;insert into t3 select * from t1;disable_result_log;select * from t11;select * from t21;enable_result_log;show status like "Qcache_total_blocks";show status like "Qcache_free_blocks";disable_result_log;insert into t11 values("");select * from t3;enable_result_log;show status like "Qcache_total_blocks";show status like "Qcache_free_blocks";flush query cache;show status like "Qcache_total_blocks";show status like "Qcache_free_blocks";drop table t1, t2, t3, t11, t21;## do not use QC if tables locked (BUG#12385)#connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);connection root;CREATE TABLE t1 ( a INT NOT NULL PRIMARY KEY AUTO_INCREMENT ) ENGINE =MyISAM;LOCK TABLE t1 READ LOCAL;connect (root2,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);connection root2;INSERT INTO t1 VALUES (), (), ();connection root;SELECT * FROM t1;connection root2;SELECT * FROM t1;connection root;SELECT * FROM t1;drop table t1;## query in QC from normal execution and SP (BUG#6897)# improved to also test BUG#3583 and BUG#12990#flush query cache;reset query cache;flush status;delimiter //;create table t1 (s1 int)//create procedure f1 () beginselect sql_cache * from t1;select sql_cache * from t1;select sql_cache * from t1;end;//create procedure f2 () beginselect sql_cache * from t1 where s1=1;select sql_cache * from t1;end;//create procedure f3 () beginselect sql_cache * from t1;select sql_cache * from t1 where s1=1;end;//create procedure f4 () beginselect sql_cache * from t1;select sql_cache * from t1 where s1=1;select sql_cache * from t1;select sql_cache * from t1 where s1=1;select sql_cache * from t1 where s1=1;end;//delimiter ;//call f1();--replace_result 1 3show status like "Qcache_queries_in_cache";show status like "Qcache_inserts";show status like "Qcache_hits";call f1();show status like "Qcache_queries_in_cache";show status like "Qcache_inserts";show status like "Qcache_hits";call f1();select sql_cache * from t1;show status like "Qcache_queries_in_cache";show status like "Qcache_inserts";show status like "Qcache_hits";insert into t1 values (1);select sql_cache * from t1;show status like "Qcache_queries_in_cache";show status like "Qcache_inserts";show status like "Qcache_hits";call f1();call f1();select sql_cache * from t1;show status like "Qcache_queries_in_cache";show status like "Qcache_inserts";show status like "Qcache_hits";flush query cache;reset query cache;flush status;select sql_cache * from t1;select sql_cache * from t1 where s1=1;call f1();call f2();call f3();call f4();call f4();call f3();call f2();select sql_cache * from t1 where s1=1;insert into t1 values (2);call f1();select sql_cache * from t1 where s1=1;select sql_cache * from t1;call f1();call f3();call f3();call f1();drop procedure f1;drop procedure f2;drop procedure f3;drop procedure f4;drop table t1;## bug#14767: INSERT in SF + concurrent SELECT with query cache#reset query cache;--disable_warningsdrop function if exists f1;--enable_warningscreate table t1 (id int);delimiter |;create function f1 () returns intbegin declare i_var int; set i_var = sleep(3); insert into t1 values(3); set i_var = sleep(3); return 0;end;|delimiter ;|connect (con1,localhost,root,,);connect (con2,localhost,root,,);connection con1;send select f1();connection con2;select sleep(4);select * from t1;connection con1;reap;connection con2;# This gives wrong result i.e. 't' table seems to be emptyselect * from t1;reset query cache;select * from t1;drop table t1;drop function f1;disconnect con1;disconnect con2;connection default;set GLOBAL query_cache_size=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -