mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
190 lines
6.5 KiB
Text
190 lines
6.5 KiB
Text
SET @save_frequency=@@GLOBAL.innodb_purge_rseg_truncate_frequency;
|
|
SET GLOBAL innodb_purge_rseg_truncate_frequency=1;
|
|
SELECT table_id INTO @table_stats_id FROM information_schema.innodb_sys_tables
|
|
WHERE name = 'mysql/innodb_table_stats';
|
|
SELECT table_id INTO @index_stats_id FROM information_schema.innodb_sys_tables
|
|
WHERE name = 'mysql/innodb_index_stats';
|
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
|
WHERE table_id NOT IN (@table_stats_id, @index_stats_id) ORDER BY table_id;
|
|
TABLE_ID NAME FLAG N_COLS SPACE ROW_FORMAT ZIP_PAGE_SIZE SPACE_TYPE
|
|
11 SYS_FOREIGN 0 7 0 Redundant 0 System
|
|
12 SYS_FOREIGN_COLS 0 7 0 Redundant 0 System
|
|
13 SYS_TABLESPACES 0 6 0 Redundant 0 System
|
|
14 SYS_DATAFILES 0 5 0 Redundant 0 System
|
|
15 SYS_VIRTUAL 0 6 0 Redundant 0 System
|
|
18 mysql/transaction_registry 33 8 3 Dynamic 0 Single
|
|
SELECT table_id,pos,mtype,prtype,len,name
|
|
FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
|
|
WHERE table_id NOT IN (@table_stats_id, @index_stats_id)
|
|
ORDER BY table_id, pos;
|
|
table_id pos mtype prtype len name
|
|
11 0 1 524292 0 ID
|
|
11 1 1 524292 0 FOR_NAME
|
|
11 2 1 524292 0 REF_NAME
|
|
11 3 6 0 4 N_COLS
|
|
12 0 1 524292 0 ID
|
|
12 1 6 0 4 POS
|
|
12 2 1 524292 0 FOR_COL_NAME
|
|
12 3 1 524292 0 REF_COL_NAME
|
|
13 0 6 0 4 SPACE
|
|
13 1 1 524292 0 NAME
|
|
13 2 6 0 4 FLAGS
|
|
14 0 6 0 4 SPACE
|
|
14 1 1 524292 0 PATH
|
|
15 0 6 0 8 TABLE_ID
|
|
15 1 6 0 4 POS
|
|
15 2 6 0 4 BASE_POS
|
|
18 0 6 1800 8 transaction_id
|
|
18 1 6 1800 8 commit_id
|
|
18 2 3 526087 7 begin_timestamp
|
|
18 3 3 526087 7 commit_timestamp
|
|
18 4 6 1022 1 isolation_level
|
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES
|
|
WHERE table_id NOT IN (@table_stats_id, @index_stats_id) ORDER BY index_id;
|
|
INDEX_ID NAME TABLE_ID TYPE N_FIELDS PAGE_NO SPACE MERGE_THRESHOLD
|
|
# ID_IND # 3 1 # # 50
|
|
# FOR_IND # 0 1 # # 50
|
|
# REF_IND # 0 1 # # 50
|
|
# ID_IND # 3 2 # # 50
|
|
# SYS_TABLESPACES_SPACE # 3 1 # # 50
|
|
# SYS_DATAFILES_SPACE # 3 1 # # 50
|
|
# BASE_IDX # 3 3 # # 50
|
|
# PRIMARY # 3 1 # # 50
|
|
# commit_id # 2 1 # # 50
|
|
# begin_timestamp # 0 1 # # 50
|
|
# commit_timestamp # 0 2 # # 50
|
|
SELECT index_id,pos,name FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS
|
|
WHERE name NOT IN ('database_name', 'table_name', 'index_name', 'stat_name')
|
|
ORDER BY index_id, pos;
|
|
index_id pos name
|
|
11 0 ID
|
|
12 0 FOR_NAME
|
|
13 0 REF_NAME
|
|
14 0 ID
|
|
14 1 POS
|
|
15 0 SPACE
|
|
16 0 SPACE
|
|
17 0 TABLE_ID
|
|
17 1 POS
|
|
17 2 BASE_POS
|
|
20 0 transaction_id
|
|
21 0 commit_id
|
|
22 0 begin_timestamp
|
|
23 0 commit_timestamp
|
|
23 1 transaction_id
|
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
|
|
ID FOR_NAME REF_NAME N_COLS TYPE
|
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
|
|
ID FOR_COL_NAME REF_COL_NAME POS
|
|
CREATE TABLE t_redundant (a INT KEY, b TEXT) ROW_FORMAT=REDUNDANT ENGINE=innodb;
|
|
CREATE TABLE t_compact (a INT KEY, b TEXT) ROW_FORMAT=COMPACT ENGINE=innodb;
|
|
CREATE TABLE t_compressed (a INT KEY, b TEXT) ROW_FORMAT=COMPRESSED ENGINE=innodb KEY_BLOCK_SIZE=2;
|
|
CREATE TABLE t_dynamic (a INT KEY, b TEXT) ROW_FORMAT=DYNAMIC ENGINE=innodb;
|
|
=== information_schema.innodb_sys_tables and innodb_sys_tablespaces ===
|
|
Table Name Tablespace Table Flags Columns Row Format Zip Size
|
|
test/t_compact test/t_compact 1 5 Compact 0
|
|
test/t_compressed test/t_compressed 37 5 Compressed 2048
|
|
test/t_dynamic test/t_dynamic 33 5 Dynamic 0
|
|
test/t_redundant test/t_redundant 0 5 Redundant 0
|
|
=== information_schema.innodb_sys_tablespaces and innodb_sys_datafiles ===
|
|
Space_Name Page_Size Zip_Size Path
|
|
test/t_redundant DEFAULT DEFAULT MYSQLD_DATADIR/test/t_redundant.ibd
|
|
test/t_compact DEFAULT DEFAULT MYSQLD_DATADIR/test/t_compact.ibd
|
|
test/t_compressed DEFAULT 2048 MYSQLD_DATADIR/test/t_compressed.ibd
|
|
test/t_dynamic DEFAULT DEFAULT MYSQLD_DATADIR/test/t_dynamic.ibd
|
|
DROP TABLE t_redundant, t_compact, t_compressed, t_dynamic;
|
|
SELECT count(*) FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS;
|
|
count(*)
|
|
8
|
|
CREATE TABLE parent (id INT NOT NULL,
|
|
PRIMARY KEY (id)) ENGINE=INNODB;
|
|
CREATE TABLE child (id INT, parent_id INT,
|
|
INDEX par_ind (parent_id),
|
|
CONSTRAINT constraint_test
|
|
FOREIGN KEY (parent_id) REFERENCES parent(id)
|
|
ON DELETE CASCADE) ENGINE=INNODB;
|
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
|
|
ID FOR_NAME REF_NAME N_COLS TYPE
|
|
test/constraint_test test/child test/parent 1 1
|
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
|
|
ID FOR_COL_NAME REF_COL_NAME POS
|
|
test/constraint_test parent_id id 0
|
|
INSERT INTO parent VALUES(1);
|
|
InnoDB 0 transactions not purged
|
|
SELECT name, num_rows, ref_count
|
|
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
|
|
WHERE name LIKE "%parent";
|
|
name num_rows ref_count
|
|
test/parent 1 1
|
|
SELECT NAME, FLAG, N_COLS FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
|
WHERE name NOT LIKE 'sys/%';
|
|
NAME FLAG N_COLS
|
|
SYS_DATAFILES 0 5
|
|
SYS_FOREIGN 0 7
|
|
SYS_FOREIGN_COLS 0 7
|
|
SYS_TABLESPACES 0 6
|
|
SYS_VIRTUAL 0 6
|
|
mysql/innodb_index_stats 33 11
|
|
mysql/innodb_table_stats 33 9
|
|
mysql/transaction_registry 33 8
|
|
test/child 33 5
|
|
test/parent 33 4
|
|
SELECT name, n_fields
|
|
from INFORMATION_SCHEMA.INNODB_SYS_INDEXES
|
|
WHERE table_id In (SELECT table_id from
|
|
INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
|
WHERE name LIKE "%parent%");
|
|
name n_fields
|
|
PRIMARY 1
|
|
SELECT name, n_fields
|
|
from INFORMATION_SCHEMA.INNODB_SYS_INDEXES
|
|
WHERE table_id In (SELECT table_id from
|
|
INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
|
WHERE name LIKE "%child%");
|
|
name n_fields
|
|
GEN_CLUST_INDEX 0
|
|
par_ind 1
|
|
SELECT name, pos, mtype, len
|
|
from INFORMATION_SCHEMA.INNODB_SYS_COLUMNS
|
|
WHERE table_id In (SELECT table_id from
|
|
INFORMATION_SCHEMA.INNODB_SYS_TABLES
|
|
WHERE name LIKE "%child%");
|
|
name pos mtype len
|
|
id 0 6 4
|
|
parent_id 1 6 4
|
|
DROP TABLE child;
|
|
DROP TABLE parent;
|
|
CREATE TABLE parent (id INT NOT NULL, newid INT NOT NULL,
|
|
PRIMARY KEY (id, newid)) ENGINE=INNODB;
|
|
CREATE TABLE child (id INT, parent_id INT,
|
|
INDEX par_ind (parent_id),
|
|
CONSTRAINT constraint_test
|
|
FOREIGN KEY (id, parent_id) REFERENCES parent(id, newid)
|
|
ON DELETE CASCADE) ENGINE=INNODB;
|
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
|
|
ID FOR_NAME REF_NAME N_COLS TYPE
|
|
test/constraint_test test/child test/parent 2 1
|
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
|
|
ID FOR_COL_NAME REF_COL_NAME POS
|
|
test/constraint_test id id 0
|
|
test/constraint_test parent_id newid 1
|
|
INSERT INTO parent VALUES(1, 9);
|
|
SELECT * FROM parent WHERE id IN (SELECT id FROM parent);
|
|
id newid
|
|
1 9
|
|
InnoDB 0 transactions not purged
|
|
SELECT name, num_rows, ref_count
|
|
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS
|
|
WHERE name LIKE "%parent";
|
|
name num_rows ref_count
|
|
test/parent 1 2
|
|
DROP TABLE child;
|
|
DROP TABLE parent;
|
|
SET GLOBAL innodb_purge_rseg_truncate_frequency=@save_frequency;
|
|
#
|
|
# MDEV-29479 I_S.INNODB_SYS_TABLESPACES doesn't have
|
|
# temporary tablespace information
|
|
#
|
|
SELECT SPACE FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES WHERE name like 'innodb_temporary';
|
|
SPACE
|
|
4294967294
|