2
# Test of multiple key caches
5
drop table if exists t1, t2, t3;
8
SET @save_key_buffer=@@key_buffer_size;
10
SELECT @@key_buffer_size;
12
# Change default key cache size
13
SET @@global.key_buffer_size=16*1024*1024;
16
SET @@global.key_buffer_size=0;
18
SET @@global.key_buffer_size=0;
20
# Print key buffer with different syntaxes
21
SHOW VARIABLES like "key_buffer_size";
22
SELECT @@key_buffer_size;
23
SELECT @@global.key_buffer_size;
24
SELECT @@global.key_buffer_size;
25
SELECT @@global.`key_buffer_size`;
26
SELECT @@global.`key_buffer_size`;
27
SELECT @@key_buffer_size;
29
SELECT @@key_buffer_size;
30
SELECT @@key_buffer_size;
32
SET @@global.key_buffer_size=@save_key_buffer;
38
SELECT @@key_buffer_size;
40
SELECT @@skr.storage_engine="test";
43
select @@keycache1.key_cache_block_size;
45
show status like 'key_blocks_used';
48
# We don't reset keycache2 as we want to ensure that mysqld will reset it
49
set global key_buffer_size=0;
51
# Test to set up a too small size for a key cache (bug #2064)
52
set global key_buffer_size=100;
53
set global key_buffer_size=0;
55
# Restore the changed variable value
57
set global key_cache_block_size= @my_key_cache_block_size;
60
# Bug #19079: corrupted index when key_cache_block_size is not multiple of
63
CREATE temporary TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=MYISAM;
64
SET @my_key_cache_block_size= @@global.key_cache_block_size;
65
SET GLOBAL key_cache_block_size=1536;
66
INSERT INTO t1 VALUES (1);
67
SELECT @@key_cache_block_size;
71
CREATE TEMPORARY TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int) ENGINE=MYISAM;
72
CREATE TEMPORARY TABLE t2(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int) ENGINE=MYISAM;
73
SET GLOBAL key_cache_block_size=1536;
74
INSERT INTO t1 VALUES (1,0);
75
INSERT INTO t2(b) SELECT b FROM t1;
76
INSERT INTO t1(b) SELECT b FROM t2;
77
INSERT INTO t2(b) SELECT b FROM t1;
78
INSERT INTO t1(b) SELECT b FROM t2;
79
INSERT INTO t2(b) SELECT b FROM t1;
80
INSERT INTO t1(b) SELECT b FROM t2;
81
INSERT INTO t2(b) SELECT b FROM t1;
82
INSERT INTO t1(b) SELECT b FROM t2;
83
INSERT INTO t2(b) SELECT b FROM t1;
84
INSERT INTO t1(b) SELECT b FROM t2;
85
INSERT INTO t2(b) SELECT b FROM t1;
86
INSERT INTO t1(b) SELECT b FROM t2;
87
INSERT INTO t2(b) SELECT b FROM t1;
88
INSERT INTO t1(b) SELECT b FROM t2;
89
INSERT INTO t2(b) SELECT b FROM t1;
90
INSERT INTO t1(b) SELECT b FROM t2;
91
INSERT INTO t2(b) SELECT b FROM t1;
92
INSERT INTO t1(b) SELECT b FROM t2;
93
SELECT COUNT(*) FROM t1;
94
SELECT @@key_cache_block_size;
97
# Restore changed variables
98
set global key_cache_block_size= @my_key_cache_block_size;
101
# Bug#10473 - Can't set 'key_buffer_size' system variable to ZERO
102
# (One cannot drop the default key cache.)
104
set @@global.key_buffer_size=0;
105
select @@global.key_buffer_size;
108
# Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables
110
SET @bug28478_key_cache_block_size= @@global.key_cache_block_size;
111
SET GLOBAL key_cache_block_size= 1536;
112
CREATE TEMPORARY TABLE t1 (
113
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
119
INSERT INTO t1 (c1, c2, c3) VALUES
120
('a', 'b', 'c'), ('b', 'c', 'd'), ('c', 'd', 'e'), ('d', 'e', 'f'),
121
('e', 'f', 'g'), ('f', 'g', 'h'), ('g', 'h', 'i'), ('h', 'i', 'j'),
122
('i', 'j', 'k'), ('j', 'k', 'l'), ('k', 'l', 'm'), ('l', 'm', 'n'),
123
('m', 'n', 'o'), ('n', 'o', 'p'), ('o', 'p', 'q'), ('p', 'q', 'r'),
124
('q', 'r', 's'), ('r', 's', 't'), ('s', 't', 'u'), ('t', 'u', 'v'),
125
('u', 'v', 'w'), ('v', 'w', 'x'), ('w', 'x', 'y'), ('x', 'y', 'z');
126
CREATE TABLE t2 AS SELECT * FROM t1;
127
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t2;
128
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t2;
129
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t2;
131
SHOW VARIABLES LIKE 'key_cache_block_size';
132
SET GLOBAL key_cache_block_size= @bug28478_key_cache_block_size;