1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-6354: Implement a way to read MySQL 5.7.4-labs-tplc page

compression format (Fusion-IO).

Addeed LZMA and BZIP2 compression methods.
This commit is contained in:
Jan Lindström
2014-07-21 22:21:30 +03:00
parent f98b52aba1
commit dbc79ce055
34 changed files with 2624 additions and 1015 deletions

View File

@ -1,225 +1,225 @@
SET GLOBAL innodb_file_format = `Barracuda`;
SET GLOBAL innodb_file_per_table = ON;
SET GLOBAL innodb_compression_algorithm = 1;
CREATE TABLE INNODB_COMPRESSED(c1 INT, b char(20)) ENGINE=INNODB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
SHOW WARNINGS;
set global innodb_compression_algorithm = 1;
create table innodb_compressed(c1 int, b char(20)) engine=innodb row_format=compressed key_block_size=8;
show warnings;
Level Code Message
CREATE TABLE INNODB_NORMAL (c1 INT, b char(20)) ENGINE=INNODB;
SHOW WARNINGS;
create table innodb_normal (c1 int, b char(20)) engine=innodb;
show warnings;
Level Code Message
CREATE TABLE INNODB_PAGE_COMPRESSED1 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=1;
SHOW WARNINGS;
create table innodb_page_compressed1 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=1;
show warnings;
Level Code Message
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED1;
show create table innodb_page_compressed1;
Table Create Table
INNODB_PAGE_COMPRESSED1 CREATE TABLE `INNODB_PAGE_COMPRESSED1` (
innodb_page_compressed1 CREATE TABLE `innodb_page_compressed1` (
`c1` int(11) DEFAULT NULL,
`b` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `PAGE_COMPRESSED`=1 `PAGE_COMPRESSION_LEVEL`=1
CREATE TABLE INNODB_PAGE_COMPRESSED2 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=2;
SHOW WARNINGS;
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `page_compressed`=1 `page_compression_level`=1
create table innodb_page_compressed2 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=2;
show warnings;
Level Code Message
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED2;
show create table innodb_page_compressed2;
Table Create Table
INNODB_PAGE_COMPRESSED2 CREATE TABLE `INNODB_PAGE_COMPRESSED2` (
innodb_page_compressed2 CREATE TABLE `innodb_page_compressed2` (
`c1` int(11) DEFAULT NULL,
`b` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `PAGE_COMPRESSED`=1 `PAGE_COMPRESSION_LEVEL`=2
CREATE TABLE INNODB_PAGE_COMPRESSED3 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=3;
SHOW WARNINGS;
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `page_compressed`=1 `page_compression_level`=2
create table innodb_page_compressed3 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=3;
show warnings;
Level Code Message
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED3;
show create table innodb_page_compressed3;
Table Create Table
INNODB_PAGE_COMPRESSED3 CREATE TABLE `INNODB_PAGE_COMPRESSED3` (
innodb_page_compressed3 CREATE TABLE `innodb_page_compressed3` (
`c1` int(11) DEFAULT NULL,
`b` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `PAGE_COMPRESSED`=1 `PAGE_COMPRESSION_LEVEL`=3
CREATE TABLE INNODB_PAGE_COMPRESSED4 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=4;
SHOW WARNINGS;
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `page_compressed`=1 `page_compression_level`=3
create table innodb_page_compressed4 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=4;
show warnings;
Level Code Message
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED4;
show create table innodb_page_compressed4;
Table Create Table
INNODB_PAGE_COMPRESSED4 CREATE TABLE `INNODB_PAGE_COMPRESSED4` (
innodb_page_compressed4 CREATE TABLE `innodb_page_compressed4` (
`c1` int(11) DEFAULT NULL,
`b` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `PAGE_COMPRESSED`=1 `PAGE_COMPRESSION_LEVEL`=4
CREATE TABLE INNODB_PAGE_COMPRESSED5 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=5;
SHOW WARNINGS;
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `page_compressed`=1 `page_compression_level`=4
create table innodb_page_compressed5 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=5;
show warnings;
Level Code Message
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED5;
show create table innodb_page_compressed5;
Table Create Table
INNODB_PAGE_COMPRESSED5 CREATE TABLE `INNODB_PAGE_COMPRESSED5` (
innodb_page_compressed5 CREATE TABLE `innodb_page_compressed5` (
`c1` int(11) DEFAULT NULL,
`b` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `PAGE_COMPRESSED`=1 `PAGE_COMPRESSION_LEVEL`=5
CREATE TABLE INNODB_PAGE_COMPRESSED6 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=6;
SHOW WARNINGS;
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `page_compressed`=1 `page_compression_level`=5
create table innodb_page_compressed6 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=6;
show warnings;
Level Code Message
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED6;
show create table innodb_page_compressed6;
Table Create Table
INNODB_PAGE_COMPRESSED6 CREATE TABLE `INNODB_PAGE_COMPRESSED6` (
innodb_page_compressed6 CREATE TABLE `innodb_page_compressed6` (
`c1` int(11) DEFAULT NULL,
`b` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `PAGE_COMPRESSED`=1 `PAGE_COMPRESSION_LEVEL`=6
CREATE TABLE INNODB_PAGE_COMPRESSED7 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=7;
SHOW WARNINGS;
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `page_compressed`=1 `page_compression_level`=6
create table innodb_page_compressed7 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=7;
show warnings;
Level Code Message
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED7;
show create table innodb_page_compressed7;
Table Create Table
INNODB_PAGE_COMPRESSED7 CREATE TABLE `INNODB_PAGE_COMPRESSED7` (
innodb_page_compressed7 CREATE TABLE `innodb_page_compressed7` (
`c1` int(11) DEFAULT NULL,
`b` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `PAGE_COMPRESSED`=1 `PAGE_COMPRESSION_LEVEL`=7
CREATE TABLE INNODB_PAGE_COMPRESSED8 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=8;
SHOW WARNINGS;
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `page_compressed`=1 `page_compression_level`=7
create table innodb_page_compressed8 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=8;
show warnings;
Level Code Message
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED8;
show create table innodb_page_compressed8;
Table Create Table
INNODB_PAGE_COMPRESSED8 CREATE TABLE `INNODB_PAGE_COMPRESSED8` (
innodb_page_compressed8 CREATE TABLE `innodb_page_compressed8` (
`c1` int(11) DEFAULT NULL,
`b` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `PAGE_COMPRESSED`=1 `PAGE_COMPRESSION_LEVEL`=8
CREATE TABLE INNODB_PAGE_COMPRESSED9 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=9;
SHOW WARNINGS;
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `page_compressed`=1 `page_compression_level`=8
create table innodb_page_compressed9 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=9;
show warnings;
Level Code Message
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED9;
show create table innodb_page_compressed9;
Table Create Table
INNODB_PAGE_COMPRESSED9 CREATE TABLE `INNODB_PAGE_COMPRESSED9` (
innodb_page_compressed9 CREATE TABLE `innodb_page_compressed9` (
`c1` int(11) DEFAULT NULL,
`b` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `PAGE_COMPRESSED`=1 `PAGE_COMPRESSION_LEVEL`=9
CREATE PROCEDURE INNODB_INSERT_PROC (REPEAT_COUNT INT)
BEGIN
DECLARE CURRENT_NUM INT;
SET CURRENT_NUM = 0;
WHILE CURRENT_NUM < REPEAT_COUNT DO
INSERT INTO INNODB_NORMAL VALUES(CURRENT_NUM,'Testing..');
SET CURRENT_NUM = CURRENT_NUM + 1;
END WHILE;
END//
COMMIT;
SET AUTOCOMMIT=0;
CALL INNODB_INSERT_PROC(5000);
COMMIT;
SET AUTOCOMMIT=1;
SELECT COUNT(*) FROM INNODB_NORMAL;
COUNT(*)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `page_compressed`=1 `page_compression_level`=9
create procedure innodb_insert_proc (repeat_count int)
begin
declare current_num int;
set current_num = 0;
while current_num < repeat_count do
insert into innodb_normal values(current_num,'testing..');
set current_num = current_num + 1;
end while;
end//
commit;
set autocommit=0;
call innodb_insert_proc(5000);
commit;
set autocommit=1;
select count(*) from innodb_normal;
count(*)
5000
INSERT INTO INNODB_COMPRESSED SELECT * FROM INNODB_NORMAL;
INSERT INTO INNODB_PAGE_COMPRESSED1 SELECT * FROM INNODB_NORMAL;
INSERT INTO INNODB_PAGE_COMPRESSED2 SELECT * FROM INNODB_NORMAL;
INSERT INTO INNODB_PAGE_COMPRESSED3 SELECT * FROM INNODB_NORMAL;
INSERT INTO INNODB_PAGE_COMPRESSED4 SELECT * FROM INNODB_NORMAL;
INSERT INTO INNODB_PAGE_COMPRESSED5 SELECT * FROM INNODB_NORMAL;
INSERT INTO INNODB_PAGE_COMPRESSED6 SELECT * FROM INNODB_NORMAL;
INSERT INTO INNODB_PAGE_COMPRESSED7 SELECT * FROM INNODB_NORMAL;
INSERT INTO INNODB_PAGE_COMPRESSED8 SELECT * FROM INNODB_NORMAL;
INSERT INTO INNODB_PAGE_COMPRESSED9 SELECT * FROM INNODB_NORMAL;
COMMIT;
SELECT COUNT(*) FROM INNODB_COMPRESSED;
COUNT(*)
insert into innodb_compressed select * from innodb_normal;
insert into innodb_page_compressed1 select * from innodb_normal;
insert into innodb_page_compressed2 select * from innodb_normal;
insert into innodb_page_compressed3 select * from innodb_normal;
insert into innodb_page_compressed4 select * from innodb_normal;
insert into innodb_page_compressed5 select * from innodb_normal;
insert into innodb_page_compressed6 select * from innodb_normal;
insert into innodb_page_compressed7 select * from innodb_normal;
insert into innodb_page_compressed8 select * from innodb_normal;
insert into innodb_page_compressed9 select * from innodb_normal;
commit;
select count(*) from innodb_compressed;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED1;
COUNT(*)
select count(*) from innodb_page_compressed1;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED1 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed1 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED2 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed2 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED3 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed3 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED4 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed4 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED5 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed5 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED6 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed6 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED7 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed7 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED8 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed8 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED9 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed9 where c1 < 500000;
count(*)
5000
ALTER TABLE INNODB_NORMAL PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=8;
SHOW WARNINGS;
alter table innodb_normal page_compressed=1 page_compression_level=8;
show warnings;
Level Code Message
SHOW CREATE TABLE INNODB_NORMAL;
show create table innodb_normal;
Table Create Table
INNODB_NORMAL CREATE TABLE `INNODB_NORMAL` (
innodb_normal CREATE TABLE `innodb_normal` (
`c1` int(11) DEFAULT NULL,
`b` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `PAGE_COMPRESSED`=1 `PAGE_COMPRESSION_LEVEL`=8
ALTER TABLE INNODB_COMPRESSED ROW_FORMAT=DEFAULT PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=8 KEY_BLOCK_SIZE=0;
SHOW WARNINGS;
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `page_compressed`=1 `page_compression_level`=8
alter table innodb_compressed row_format=default page_compressed=1 page_compression_level=8 key_block_size=0;
show warnings;
Level Code Message
SHOW CREATE TABLE INNODB_COMPRESSED;
show create table innodb_compressed;
Table Create Table
INNODB_COMPRESSED CREATE TABLE `INNODB_COMPRESSED` (
innodb_compressed CREATE TABLE `innodb_compressed` (
`c1` int(11) DEFAULT NULL,
`b` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `PAGE_COMPRESSED`=1 `PAGE_COMPRESSION_LEVEL`=8
SET GLOBAL innodb_compression_algorithm = 0;
UPDATE INNODB_PAGE_COMPRESSED1 SET c1 = c1 + 1;
UPDATE INNODB_PAGE_COMPRESSED2 SET c1 = c1 + 1;
UPDATE INNODB_PAGE_COMPRESSED3 SET c1 = c1 + 1;
UPDATE INNODB_PAGE_COMPRESSED4 SET c1 = c1 + 1;
UPDATE INNODB_PAGE_COMPRESSED5 SET c1 = c1 + 1;
UPDATE INNODB_PAGE_COMPRESSED6 SET c1 = c1 + 1;
UPDATE INNODB_PAGE_COMPRESSED7 SET c1 = c1 + 1;
UPDATE INNODB_PAGE_COMPRESSED8 SET c1 = c1 + 1;
UPDATE INNODB_PAGE_COMPRESSED9 SET c1 = c1 + 1;
COMMIT;
SELECT COUNT(*) FROM INNODB_COMPRESSED;
COUNT(*)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 `page_compressed`=1 `page_compression_level`=8
set global innodb_compression_algorithm = 0;
update innodb_page_compressed1 set c1 = c1 + 1;
update innodb_page_compressed2 set c1 = c1 + 1;
update innodb_page_compressed3 set c1 = c1 + 1;
update innodb_page_compressed4 set c1 = c1 + 1;
update innodb_page_compressed5 set c1 = c1 + 1;
update innodb_page_compressed6 set c1 = c1 + 1;
update innodb_page_compressed7 set c1 = c1 + 1;
update innodb_page_compressed8 set c1 = c1 + 1;
update innodb_page_compressed9 set c1 = c1 + 1;
commit;
select count(*) from innodb_compressed;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED1;
COUNT(*)
select count(*) from innodb_page_compressed1;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED1 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed1 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED2 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed2 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED3 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed3 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED4 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed4 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED5 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed5 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED6 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed6 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED7 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed7 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED8 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed8 where c1 < 500000;
count(*)
5000
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED9 WHERE C1 < 500000;
COUNT(*)
select count(*) from innodb_page_compressed9 where c1 < 500000;
count(*)
5000
DROP PROCEDURE INNODB_INSERT_PROC;
DROP TABLE INNODB_NORMAL;
DROP TABLE INNODB_COMPRESSED;
DROP TABLE INNODB_PAGE_COMPRESSED1;
DROP TABLE INNODB_PAGE_COMPRESSED2;
DROP TABLE INNODB_PAGE_COMPRESSED3;
DROP TABLE INNODB_PAGE_COMPRESSED4;
DROP TABLE INNODB_PAGE_COMPRESSED5;
DROP TABLE INNODB_PAGE_COMPRESSED6;
DROP TABLE INNODB_PAGE_COMPRESSED7;
DROP TABLE INNODB_PAGE_COMPRESSED8;
DROP TABLE INNODB_PAGE_COMPRESSED9;
drop procedure innodb_insert_proc;
drop table innodb_normal;
drop table innodb_compressed;
drop table innodb_page_compressed1;
drop table innodb_page_compressed2;
drop table innodb_page_compressed3;
drop table innodb_page_compressed4;
drop table innodb_page_compressed5;
drop table innodb_page_compressed6;
drop table innodb_page_compressed7;
drop table innodb_page_compressed8;
drop table innodb_page_compressed9;