mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-21472: ALTER TABLE ... ANALYZE PARTITION ... with EITS reads and locks all rows
Do not collect EITS statistics for this statement: ALTER TABLE t ANALYZE PARTITION p EITS stats are currently global, not per-partition. Collecting global stats when we are asked to process just one partition causes issues for DBAs.
This commit is contained in:
@ -9,5 +9,37 @@ ANALYZE TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
SET use_stat_tables = DEFAULT;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-21472: ALTER TABLE ... ANALYZE PARTITION ... with EITS reads and locks all rows
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
id int(11) auto_increment primary key,
|
||||
c1 int(11) DEFAULT NULL
|
||||
) PARTITION BY RANGE (id) (
|
||||
PARTITION p0 VALUES LESS THAN (4),
|
||||
PARTITION p1 VALUES LESS THAN MAXVALUE
|
||||
);
|
||||
insert into t1(c1) values (1),(1),(1),(1), (1),(1),(1),(1);
|
||||
insert into t1(c1) select c1 from t1;
|
||||
insert into t1(c1) select c1 from t1;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
32
|
||||
select count(*) from t1 where id <4;
|
||||
count(*)
|
||||
3
|
||||
flush status;
|
||||
set session use_stat_tables='preferably';
|
||||
# Must NOT show "Engine-independent statistics collected":
|
||||
alter table t1 analyze partition p0;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
# Should not have Handler_read_rnd_next=34
|
||||
show session status like 'Handler_read_rnd%';
|
||||
Variable_name Value
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_deleted 0
|
||||
Handler_read_rnd_next 0
|
||||
drop table t1;
|
||||
SET use_stat_tables = DEFAULT;
|
||||
|
Reference in New Issue
Block a user