~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
drop table if exists t1, t2, t3;
2
SET @save_key_buffer=@@key_buffer_size;
3
SELECT @@key_buffer_size, @@small.key_buffer_size;
4
@@key_buffer_size	@@small.key_buffer_size
5
2097152	131072
6
SET @@global.key_buffer_size=16*1024*1024;
7
SET @@global.default.key_buffer_size=16*1024*1024;
8
SET @@global.default.key_buffer_size=16*1024*1024;
9
SET @@global.small.key_buffer_size=1*1024*1024;
10
SET @@global.medium.key_buffer_size=4*1024*1024;
11
SET @@global.medium.key_buffer_size=0;
12
SET @@global.medium.key_buffer_size=0;
13
SHOW VARIABLES like "key_buffer_size";
14
Variable_name	Value
15
key_buffer_size	16777216
16
SELECT @@key_buffer_size;
17
@@key_buffer_size
18
16777216
19
SELECT @@global.key_buffer_size;
20
@@global.key_buffer_size
21
16777216
22
SELECT @@global.default.key_buffer_size;
23
@@global.default.key_buffer_size
24
16777216
25
SELECT @@global.default.`key_buffer_size`;
26
@@global.default.`key_buffer_size`
27
16777216
28
SELECT @@global.`default`.`key_buffer_size`;
29
@@global.`default`.`key_buffer_size`
30
16777216
31
SELECT @@`default`.key_buffer_size;
32
@@`default`.key_buffer_size
33
16777216
34
SELECT @@small.key_buffer_size;
35
@@small.key_buffer_size
36
1048576
37
SELECT @@medium.key_buffer_size;
38
@@medium.key_buffer_size
39
0
40
SET @@global.key_buffer_size=@save_key_buffer;
41
SELECT @@default.key_buffer_size;
42
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'default.key_buffer_size' at line 1
43
SELECT @@skr.storage_engine="test";
44
ERROR HY000: Variable 'storage_engine' is not a variable component (can't be used as XXXX.variable_name)
45
select @@keycache1.key_cache_block_size;
46
@@keycache1.key_cache_block_size
47
0
48
select @@keycache1.key_buffer_size;
49
@@keycache1.key_buffer_size
50
0
51
set global keycache1.key_cache_block_size=2048;
52
select @@keycache1.key_buffer_size;
53
@@keycache1.key_buffer_size
54
0
55
select @@keycache1.key_cache_block_size;
56
@@keycache1.key_cache_block_size
57
2048
58
set global keycache1.key_buffer_size=1*1024*1024;
59
select @@keycache1.key_buffer_size;
60
@@keycache1.key_buffer_size
61
1048576
62
select @@keycache1.key_cache_block_size;
63
@@keycache1.key_cache_block_size
64
2048
65
set global keycache2.key_buffer_size=4*1024*1024;
66
select @@keycache2.key_buffer_size;
67
@@keycache2.key_buffer_size
68
4194304
69
select @@keycache2.key_cache_block_size;
70
@@keycache2.key_cache_block_size
71
1024
72
set global keycache1.key_buffer_size=0;
73
select @@keycache1.key_buffer_size;
74
@@keycache1.key_buffer_size
75
0
76
select @@keycache1.key_cache_block_size;
77
@@keycache1.key_cache_block_size
78
2048
79
select @@key_buffer_size;
80
@@key_buffer_size
81
2097152
82
select @@key_cache_block_size;
83
@@key_cache_block_size
84
1024
85
set global keycache1.key_buffer_size=1024*1024;
86
create table t1 (p int primary key, a char(10)) delay_key_write=1;
87
create table t2 (p int primary key, i int, a char(10), key k1(i), key k2(a));
88
show status like 'key_blocks_used';
89
Variable_name	Value
90
Key_blocks_used	0
91
show status like 'key_blocks_unused';
92
Variable_name	Value
93
Key_blocks_unused	KEY_BLOCKS_UNUSED
94
insert into t1 values (1, 'qqqq'), (11, 'yyyy');
95
insert into t2 values (1, 1, 'qqqq'), (2, 1, 'pppp'),
96
(3, 1, 'yyyy'), (4, 3, 'zzzz');
97
select * from t1;
98
p	a
99
1	qqqq
100
11	yyyy
101
select * from t2;
102
p	i	a
103
1	1	qqqq
104
2	1	pppp
105
3	1	yyyy
106
4	3	zzzz
107
update t1 set p=2 where p=1;
108
update t2 set i=2 where i=1;
109
show status like 'key_blocks_used';
110
Variable_name	Value
111
Key_blocks_used	4
112
show status like 'key_blocks_unused';
113
Variable_name	Value
114
Key_blocks_unused	KEY_BLOCKS_UNUSED
115
cache index t1 key (`primary`) in keycache1;
116
Table	Op	Msg_type	Msg_text
117
test.t1	assign_to_keycache	status	OK
118
explain select p from t1;
119
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
120
1	SIMPLE	t1	index	NULL	PRIMARY	4	NULL	2	Using index
121
select p from t1;
122
p
123
2
124
11
125
explain select i from t2;
126
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
127
1	SIMPLE	t2	index	NULL	k1	5	NULL	4	Using index
128
select i from t2;
129
i
130
2
131
2
132
2
133
3
134
explain select count(*) from t1, t2 where t1.p = t2.i;
135
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
136
1	SIMPLE	t1	index	PRIMARY	PRIMARY	4	NULL	2	Using index
137
1	SIMPLE	t2	ref	k1	k1	5	test.t1.p	2	Using index
138
select count(*) from t1, t2 where t1.p = t2.i;
139
count(*)
140
3
141
cache index t2 in keycache1;
142
Table	Op	Msg_type	Msg_text
143
test.t2	assign_to_keycache	status	OK
144
update t2 set p=p+1000, i=2 where a='qqqq';
145
cache index t2 in keycache2;
146
Table	Op	Msg_type	Msg_text
147
test.t2	assign_to_keycache	status	OK
148
insert into t2 values (2000, 3, 'yyyy');
149
cache index t2 in keycache1;
150
Table	Op	Msg_type	Msg_text
151
test.t2	assign_to_keycache	status	OK
152
update t2 set p=3000 where a='zzzz';
153
select * from t2;
154
p	i	a
155
1001	2	qqqq
156
2	2	pppp
157
3	2	yyyy
158
3000	3	zzzz
159
2000	3	yyyy
160
explain select p from t2;
161
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
162
1	SIMPLE	t2	index	NULL	PRIMARY	4	NULL	5	Using index
163
select p from t2;
164
p
165
2
166
3
167
1001
168
2000
169
3000
170
explain select i from t2;
171
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
172
1	SIMPLE	t2	index	NULL	k1	5	NULL	5	Using index
173
select i from t2;
174
i
175
2
176
2
177
2
178
3
179
3
180
explain select a from t2;
181
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
182
1	SIMPLE	t2	index	NULL	k2	11	NULL	5	Using index
183
select a from t2;
184
a
185
pppp
186
qqqq
187
yyyy
188
yyyy
189
zzzz
190
cache index t1 in unknown_key_cache;
191
ERROR HY000: Unknown key cache 'unknown_key_cache'
192
cache index t1 key (unknown_key) in keycache1;
193
Table	Op	Msg_type	Msg_text
194
test.t1	assign_to_keycache	Error	Key 'unknown_key' doesn't exist in table 't1'
195
test.t1	assign_to_keycache	status	Operation failed
196
select @@keycache2.key_buffer_size;
197
@@keycache2.key_buffer_size
198
4194304
199
select @@keycache2.key_cache_block_size;
200
@@keycache2.key_cache_block_size
201
1024
202
set global keycache2.key_buffer_size=0;
203
select @@keycache2.key_buffer_size;
204
@@keycache2.key_buffer_size
205
0
206
select @@keycache2.key_cache_block_size;
207
@@keycache2.key_cache_block_size
208
1024
209
set global keycache2.key_buffer_size=1024*1024;
210
select @@keycache2.key_buffer_size;
211
@@keycache2.key_buffer_size
212
1048576
213
update t2 set p=4000 where a='zzzz';
214
update t1 set p=p+1;
215
set global keycache1.key_buffer_size=0;
216
select * from t2;
217
p	i	a
218
1001	2	qqqq
219
2	2	pppp
220
3	2	yyyy
221
4000	3	zzzz
222
2000	3	yyyy
223
select p from t2;
224
p
225
2
226
3
227
1001
228
2000
229
4000
230
explain select i from t2;
231
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
232
1	SIMPLE	t2	index	NULL	k1	5	NULL	5	Using index
233
select i from t2;
234
i
235
2
236
2
237
2
238
3
239
3
240
explain select a from t2;
241
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
242
1	SIMPLE	t2	index	NULL	k2	11	NULL	5	Using index
243
select a from t2;
244
a
245
pppp
246
qqqq
247
yyyy
248
yyyy
249
zzzz
250
select * from t1;
251
p	a
252
3	qqqq
253
12	yyyy
254
select p from t1;
255
p
256
3
257
12
258
create table t3 (like t1);
259
cache index t3 in small;
260
Table	Op	Msg_type	Msg_text
261
test.t3	assign_to_keycache	status	OK
262
insert into t3 select * from t1;
263
cache index t3 in keycache2;
264
Table	Op	Msg_type	Msg_text
265
test.t3	assign_to_keycache	status	OK
266
cache index t1,t2 in default;
267
Table	Op	Msg_type	Msg_text
268
test.t1	assign_to_keycache	status	OK
269
test.t2	assign_to_keycache	status	OK
270
drop table t1,t2,t3;
271
show status like 'key_blocks_used';
272
Variable_name	Value
273
Key_blocks_used	4
274
show status like 'key_blocks_unused';
275
Variable_name	Value
276
Key_blocks_unused	KEY_BLOCKS_UNUSED
277
set global keycache2.key_buffer_size=0;
278
set global keycache3.key_buffer_size=100;
279
Warnings:
280
Warning	1292	Truncated incorrect key_buffer_size value: '100'
281
set global keycache3.key_buffer_size=0;
282
create table t1 (mytext text, FULLTEXT (mytext));
283
insert t1 values ('aaabbb');
284
check table t1;
285
Table	Op	Msg_type	Msg_text
286
test.t1	check	status	OK
287
set @my_key_cache_block_size= @@global.key_cache_block_size;
288
set GLOBAL key_cache_block_size=2048;
289
check table t1;
290
Table	Op	Msg_type	Msg_text
291
test.t1	check	status	OK
292
drop table t1;
293
set global key_cache_block_size= @my_key_cache_block_size;
294
CREATE TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY);
295
SET @my_key_cache_block_size= @@global.key_cache_block_size;
296
SET GLOBAL key_cache_block_size=1536;
297
INSERT INTO t1 VALUES (1);
298
SELECT @@key_cache_block_size;
299
@@key_cache_block_size
300
1536
301
CHECK TABLE t1;
302
Table	Op	Msg_type	Msg_text
303
test.t1	check	status	OK
304
DROP TABLE t1;
305
CREATE TABLE t1(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int);
306
CREATE TABLE t2(a int NOT NULL AUTO_INCREMENT PRIMARY KEY, b int);
307
SET GLOBAL key_cache_block_size=1536;
308
INSERT INTO t1 VALUES (1,0);
309
INSERT INTO t2(b) SELECT b FROM t1;
310
INSERT INTO t1(b) SELECT b FROM t2;
311
INSERT INTO t2(b) SELECT b FROM t1;
312
INSERT INTO t1(b) SELECT b FROM t2;
313
INSERT INTO t2(b) SELECT b FROM t1;
314
INSERT INTO t1(b) SELECT b FROM t2;
315
INSERT INTO t2(b) SELECT b FROM t1;
316
INSERT INTO t1(b) SELECT b FROM t2;
317
INSERT INTO t2(b) SELECT b FROM t1;
318
INSERT INTO t1(b) SELECT b FROM t2;
319
INSERT INTO t2(b) SELECT b FROM t1;
320
INSERT INTO t1(b) SELECT b FROM t2;
321
INSERT INTO t2(b) SELECT b FROM t1;
322
INSERT INTO t1(b) SELECT b FROM t2;
323
INSERT INTO t2(b) SELECT b FROM t1;
324
INSERT INTO t1(b) SELECT b FROM t2;
325
INSERT INTO t2(b) SELECT b FROM t1;
326
INSERT INTO t1(b) SELECT b FROM t2;
327
SELECT COUNT(*) FROM t1;
328
COUNT(*)
329
4181
330
SELECT @@key_cache_block_size;
331
@@key_cache_block_size
332
1536
333
CHECK TABLE t1;
334
Table	Op	Msg_type	Msg_text
335
test.t1	check	status	OK
336
DROP TABLE t1,t2;
337
set global key_cache_block_size= @my_key_cache_block_size;
338
set @@global.key_buffer_size=0;
339
Warnings:
340
Warning	1438	Cannot drop default keycache
341
select @@global.key_buffer_size;
342
@@global.key_buffer_size
343
2097152
344
SET @bug28478_key_cache_block_size= @@global.key_cache_block_size;
345
SET GLOBAL key_cache_block_size= 1536;
346
CREATE TABLE t1 (
347
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
348
c1 CHAR(150),
349
c2 CHAR(150),
350
c3 CHAR(150),
351
KEY(c1, c2, c3)
352
) ENGINE= MyISAM;
353
INSERT INTO t1 (c1, c2, c3) VALUES
354
('a', 'b', 'c'), ('b', 'c', 'd'), ('c', 'd', 'e'), ('d', 'e', 'f'),
355
('e', 'f', 'g'), ('f', 'g', 'h'), ('g', 'h', 'i'), ('h', 'i', 'j'),
356
('i', 'j', 'k'), ('j', 'k', 'l'), ('k', 'l', 'm'), ('l', 'm', 'n'),
357
('m', 'n', 'o'), ('n', 'o', 'p'), ('o', 'p', 'q'), ('p', 'q', 'r'),
358
('q', 'r', 's'), ('r', 's', 't'), ('s', 't', 'u'), ('t', 'u', 'v'),
359
('u', 'v', 'w'), ('v', 'w', 'x'), ('w', 'x', 'y'), ('x', 'y', 'z');
360
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t1;
361
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t1;
362
INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t1;
363
CHECK TABLE t1;
364
Table	Op	Msg_type	Msg_text
365
test.t1	check	status	OK
366
SHOW VARIABLES LIKE 'key_cache_block_size';
367
Variable_name	Value
368
key_cache_block_size	1536
369
SET GLOBAL key_cache_block_size= @bug28478_key_cache_block_size;
370
DROP TABLE t1;