mirror of
https://github.com/MariaDB/server.git
synced 2025-01-27 01:04:19 +01:00
80 lines
2.5 KiB
Text
80 lines
2.5 KiB
Text
DROP TABLE if exists t1;
|
|
select @@global.innodb_stats_persistent;
|
|
@@global.innodb_stats_persistent
|
|
0
|
|
set global innodb_defragment_stats_accuracy = 80;
|
|
CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY AUTO_INCREMENT, b VARCHAR(256), c INT, KEY second(a, b),KEY third(c)) ENGINE=INNODB;
|
|
connect con1,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK;
|
|
connect con2,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK;
|
|
connect con3,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK;
|
|
connect con4,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK;
|
|
connection default;
|
|
SET @@global.innodb_defragment_n_pages = 20;
|
|
select count(*) from t1;
|
|
count(*)
|
|
20000
|
|
select count(*) from t1 force index (second);
|
|
count(*)
|
|
20000
|
|
select count(*) from t1 force index (third);
|
|
count(*)
|
|
20000
|
|
select count(*) from t1;
|
|
count(*)
|
|
15800
|
|
select count(*) from t1 force index (second);
|
|
count(*)
|
|
15800
|
|
select count(*) from t1 force index (third);
|
|
count(*)
|
|
15800
|
|
select count(stat_value) > 0 from mysql.innodb_index_stats where table_name like '%t1%' and stat_name in ('n_pages_freed');
|
|
count(stat_value) > 0
|
|
0
|
|
select count(stat_value) > 0 from mysql.innodb_index_stats where table_name like '%t1%' and stat_name in ('n_page_split');
|
|
count(stat_value) > 0
|
|
1
|
|
select count(stat_value) > 0 from mysql.innodb_index_stats where table_name like '%t1%' and stat_name in ('n_leaf_pages_defrag');
|
|
count(stat_value) > 0
|
|
1
|
|
connection con1;
|
|
optimize table t1;;
|
|
connection default;
|
|
INSERT INTO t1 VALUES (400000, REPEAT('A', 256),300000);;
|
|
connection con2;
|
|
INSERT INTO t1 VALUES (500000, REPEAT('A', 256),400000);;
|
|
connection con3;
|
|
DELETE FROM t1 where a between 1 and 100;;
|
|
connection con4;
|
|
UPDATE t1 SET c = c + 1 where c between 2000 and 8000;;
|
|
connection con1;
|
|
connection con2;
|
|
connection con3;
|
|
connection con4;
|
|
connection default;
|
|
disconnect con1;
|
|
disconnect con2;
|
|
disconnect con3;
|
|
disconnect con4;
|
|
optimize table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 optimize status OK
|
|
select count(*) from t1;
|
|
count(*)
|
|
15723
|
|
select count(*) from t1 force index (second);
|
|
count(*)
|
|
15723
|
|
select count(*) from t1 force index (third);
|
|
count(*)
|
|
15723
|
|
select count(stat_value) > 0 from mysql.innodb_index_stats where table_name like '%t1%' and stat_name in ('n_pages_freed');
|
|
count(stat_value) > 0
|
|
1
|
|
select count(stat_value) > 0 from mysql.innodb_index_stats where table_name like '%t1%' and stat_name in ('n_page_split');
|
|
count(stat_value) > 0
|
|
1
|
|
select count(stat_value) > 0 from mysql.innodb_index_stats where table_name like '%t1%' and stat_name in ('n_leaf_pages_defrag');
|
|
count(stat_value) > 0
|
|
1
|
|
drop table t1;
|