mirror of
https://github.com/MariaDB/server.git
synced 2025-04-28 06:45:23 +03:00
Backporting the WL#5716, "Information schema table for InnoDB buffer pool information". Backporting revisions 2876.244.113, 2876.244.102 from mysql-trunk. rb://1177 approved by Jimmy Yang.
77 lines
2.6 KiB
Plaintext
77 lines
2.6 KiB
Plaintext
# Exercise the code path for INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS
|
|
# and INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
|
|
|
|
-- source include/have_innodb.inc
|
|
|
|
-- disable_result_log
|
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS;
|
|
|
|
# How many buffer pools we have
|
|
SELECT count(*) FROM INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS;
|
|
|
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE;
|
|
|
|
# This gives the over all buffer pool size
|
|
SELECT COUNT(*) FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE;
|
|
|
|
-- enable_result_log
|
|
|
|
# Create a table and check its page info behave correctly in the pool
|
|
CREATE TABLE infoschema_buffer_test (col1 INT) ENGINE = INNODB;
|
|
|
|
INSERT INTO infoschema_buffer_test VALUES(9);
|
|
|
|
# We should be able to see this table in the buffer pool if we check
|
|
# right away
|
|
SELECT TABLE_NAME, INDEX_NAME, NUMBER_RECORDS, DATA_SIZE, PAGE_STATE, PAGE_TYPE
|
|
FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
|
|
WHERE TABLE_NAME like "%infoschema_buffer_test"
|
|
and PAGE_STATE="file_page" and PAGE_TYPE="index";
|
|
|
|
# The NUMBER_RECORDS and DATA_SIZE should check with each insertion
|
|
INSERT INTO infoschema_buffer_test VALUES(19);
|
|
|
|
SELECT TABLE_NAME, INDEX_NAME, NUMBER_RECORDS, DATA_SIZE, PAGE_STATE, PAGE_TYPE
|
|
FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
|
|
WHERE TABLE_NAME like "%infoschema_buffer_test"
|
|
and PAGE_STATE="file_page" and PAGE_TYPE="index";
|
|
|
|
CREATE INDEX idx ON infoschema_buffer_test(col1);
|
|
|
|
SELECT TABLE_NAME, INDEX_NAME, NUMBER_RECORDS, DATA_SIZE, PAGE_STATE, PAGE_TYPE
|
|
FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
|
|
WHERE TABLE_NAME like "%infoschema_buffer_test"
|
|
and PAGE_STATE="file_page" and INDEX_NAME = "idx" and PAGE_TYPE="index";
|
|
|
|
|
|
# Check the buffer after dropping the table
|
|
DROP TABLE infoschema_buffer_test;
|
|
|
|
SELECT TABLE_NAME, INDEX_NAME, NUMBER_RECORDS, DATA_SIZE, PAGE_STATE, PAGE_TYPE
|
|
FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
|
|
WHERE TABLE_NAME like "%infoschema_buffer_test";
|
|
|
|
# Do one more test
|
|
#--replace_regex /'*[0-9]*'/'NUM'/
|
|
CREATE TABLE infoschema_parent (id INT NOT NULL, PRIMARY KEY (id))
|
|
ENGINE=INNODB;
|
|
|
|
CREATE TABLE infoschema_child (id INT, parent_id INT, INDEX par_ind (parent_id),
|
|
FOREIGN KEY (parent_id)
|
|
REFERENCES infoschema_parent(id)
|
|
ON DELETE CASCADE)
|
|
ENGINE=INNODB;
|
|
|
|
SELECT count(*)
|
|
FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
|
|
WHERE TABLE_NAME like "%infoschema_child" and PAGE_STATE="file_page"
|
|
and PAGE_TYPE="index";
|
|
|
|
DROP TABLE infoschema_child;
|
|
DROP TABLE infoschema_parent;
|
|
|
|
show create table information_schema.innodb_buffer_page;
|
|
show create table information_schema.innodb_buffer_page_lru;
|
|
show create table information_schema.innodb_buffer_pool_stats;
|
|
|