mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
b21cf962e3
myisam_max_extra_sort_file_size is depricated Ensure that myisam_data_pointer_size is honoured when creating new MyISAM files Changed default value of myisam_data_pointer_size from 4 to 6 to get rid of 'table-is-full' errors include/myisam.h: Change type of myisam_block_size and myisam_concurrent_insert to make them changeable in mysqld.cc Removed not used varaible myisam_max_extra_temp_length include/thr_lock.h: Added extra parameter to get_status myisam/mi_create.c: Ensure that myisam_data_pointer_size is honoured myisam/mi_dynrec.c: If 'append_insert_at_end' is set, only write at end of myisam record file myisam/mi_locking.c: Add extra argument to 'mi_get_status' to allow thr_lock to signal that we want to do a concurrent insert If this is used, we will append new insert rows at end of data file. Change mi_check_status() to allow concurrent_inserts even if there are holes in the file when myisam_concurent_insert=2 myisam/mi_static.c: Change behavior of myisam_concurrent_insert so that setting this to 2 allows inserts even if there is a hole in the data file. Default value is 2 for MyISAM direct usage but will be set to 1 (old default) by mysqld.cc myisam/mi_statrec.c: If 'append_insert_at_end' is set, only write at end of myisam record file myisam/mi_write.c: If 'append_insert_at_end' is set, only write at end of myisam record file myisam/myisamdef.h: Support for insert-at-end even if there is holes in data file mysql-test/r/gis-rtree.result: Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6 mysql-test/r/group_min_max.result: Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6 mysql-test/r/index_merge.result: Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6 mysql-test/r/index_merge_ror.result: Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6 mysql-test/r/merge.result: Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6 mysql-test/r/myisam.result: Test of concurrent_insert=2 mysql-test/r/null.result: Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6 mysql-test/r/preload.result: Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6 mysql-test/r/ps_1general.result: Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6 mysql-test/r/range.result: Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6 mysql-test/r/variables.result: concurrent_insert is now a integer, not a boolean myisam_extra_sort_file_size is deleted mysql-test/r/view.result: Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6 mysql-test/t/index_merge.test: Test result changed because default value for myisam_data_pointer_size is changed from 4 -> 6 mysql-test/t/myisam.test: Test of concurrent_insert=2 mysql-test/t/ps_1general.test: Drop test table mysql-test/t/variables.test: concurrent_insert is now a integer, not a boolean myisam_extra_sort_file_size is deleted mysql-test/t/view.test: Drop tables that may be left from previous tests mysys/thr_lock.c: Extra paramter to get_status to signal if concurrent_insert was used sql/mysqld.cc: concurrent-insert can now be set to 2 for concurrent inserts when there is holes in the data file myisam_max_extra_sort_file_size is depricated sql/set_var.cc: concurrent-insert is now an integer, not a bool myisam_max_extra_sort_file_size is deleted
172 lines
3.9 KiB
Text
172 lines
3.9 KiB
Text
drop table if exists t1, t2;
|
|
create table t1 (
|
|
a int not null auto_increment,
|
|
b char(16) not null,
|
|
primary key (a),
|
|
key (b)
|
|
);
|
|
create table t2(
|
|
a int not null auto_increment,
|
|
b char(16) not null,
|
|
primary key (a),
|
|
key (b)
|
|
);
|
|
insert into t1(b) values
|
|
('test0'),
|
|
('test1'),
|
|
('test2'),
|
|
('test3'),
|
|
('test4'),
|
|
('test5'),
|
|
('test6'),
|
|
('test7');
|
|
insert into t2(b) select b from t1;
|
|
insert into t1(b) select b from t2;
|
|
insert into t2(b) select b from t1;
|
|
insert into t1(b) select b from t2;
|
|
insert into t2(b) select b from t1;
|
|
insert into t1(b) select b from t2;
|
|
insert into t2(b) select b from t1;
|
|
insert into t1(b) select b from t2;
|
|
insert into t2(b) select b from t1;
|
|
insert into t1(b) select b from t2;
|
|
insert into t2(b) select b from t1;
|
|
insert into t1(b) select b from t2;
|
|
insert into t2(b) select b from t1;
|
|
insert into t1(b) select b from t2;
|
|
insert into t2(b) select b from t1;
|
|
insert into t1(b) select b from t2;
|
|
insert into t2(b) select b from t1;
|
|
insert into t1(b) select b from t2;
|
|
select count(*) from t1;
|
|
count(*)
|
|
33448
|
|
select count(*) from t2;
|
|
count(*)
|
|
20672
|
|
flush tables;
|
|
flush status;
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 0
|
|
Key_reads 0
|
|
select count(*) from t1 where b = 'test1';
|
|
count(*)
|
|
4181
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 294
|
|
Key_reads 60
|
|
select count(*) from t1 where b = 'test1';
|
|
count(*)
|
|
4181
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 588
|
|
Key_reads 60
|
|
flush tables;
|
|
flush status;
|
|
select @@preload_buffer_size;
|
|
@@preload_buffer_size
|
|
32768
|
|
load index into cache t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 preload_keys status OK
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 774
|
|
Key_reads 774
|
|
select count(*) from t1 where b = 'test1';
|
|
count(*)
|
|
4181
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 1068
|
|
Key_reads 774
|
|
flush tables;
|
|
flush status;
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 0
|
|
Key_reads 0
|
|
set session preload_buffer_size=256*1024;
|
|
select @@preload_buffer_size;
|
|
@@preload_buffer_size
|
|
262144
|
|
load index into cache t1 ignore leaves;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 preload_keys status OK
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 17
|
|
Key_reads 17
|
|
select count(*) from t1 where b = 'test1';
|
|
count(*)
|
|
4181
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 311
|
|
Key_reads 75
|
|
flush tables;
|
|
flush status;
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 0
|
|
Key_reads 0
|
|
set session preload_buffer_size=1*1024;
|
|
select @@preload_buffer_size;
|
|
@@preload_buffer_size
|
|
1024
|
|
load index into cache t1, t2 key (primary,b) ignore leaves;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 preload_keys status OK
|
|
test.t2 preload_keys status OK
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 785
|
|
Key_reads 785
|
|
select count(*) from t1 where b = 'test1';
|
|
count(*)
|
|
4181
|
|
select count(*) from t2 where b = 'test1';
|
|
count(*)
|
|
2584
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 1266
|
|
Key_reads 821
|
|
flush tables;
|
|
flush status;
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 0
|
|
Key_reads 0
|
|
load index into cache t3, t2 key (primary,b) ;
|
|
Table Op Msg_type Msg_text
|
|
test.t3 preload_keys error Table 'test.t3' doesn't exist
|
|
test.t2 preload_keys status OK
|
|
Warnings:
|
|
Error 1146 Table 'test.t3' doesn't exist
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 478
|
|
Key_reads 478
|
|
flush tables;
|
|
flush status;
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 0
|
|
Key_reads 0
|
|
load index into cache t3 key (b), t2 key (c) ;
|
|
Table Op Msg_type Msg_text
|
|
test.t3 preload_keys error Table 'test.t3' doesn't exist
|
|
test.t2 preload_keys error Key column 'c' doesn't exist in table
|
|
test.t2 preload_keys status Operation failed
|
|
Warnings:
|
|
Error 1146 Table 'test.t3' doesn't exist
|
|
Error 1072 Key column 'c' doesn't exist in table
|
|
show status like "key_read%";
|
|
Variable_name Value
|
|
Key_read_requests 0
|
|
Key_reads 0
|
|
drop table t1, t2;
|