mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +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:
@ -9,125 +9,125 @@ let $innodb_file_per_table_orig = `SELECT @@innodb_file_per_table`;
|
||||
SET GLOBAL innodb_file_format = `Barracuda`;
|
||||
SET GLOBAL innodb_file_per_table = ON;
|
||||
|
||||
# ZLIB
|
||||
SET GLOBAL innodb_compression_algorithm = 1;
|
||||
# zlib
|
||||
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;
|
||||
CREATE TABLE INNODB_NORMAL (c1 INT, b char(20)) ENGINE=INNODB;
|
||||
SHOW WARNINGS;
|
||||
CREATE TABLE INNODB_PAGE_COMPRESSED1 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=1;
|
||||
SHOW WARNINGS;
|
||||
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED1;
|
||||
CREATE TABLE INNODB_PAGE_COMPRESSED2 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=2;
|
||||
SHOW WARNINGS;
|
||||
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED2;
|
||||
CREATE TABLE INNODB_PAGE_COMPRESSED3 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=3;
|
||||
SHOW WARNINGS;
|
||||
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED3;
|
||||
CREATE TABLE INNODB_PAGE_COMPRESSED4 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=4;
|
||||
SHOW WARNINGS;
|
||||
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED4;
|
||||
CREATE TABLE INNODB_PAGE_COMPRESSED5 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=5;
|
||||
SHOW WARNINGS;
|
||||
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED5;
|
||||
CREATE TABLE INNODB_PAGE_COMPRESSED6 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=6;
|
||||
SHOW WARNINGS;
|
||||
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED6;
|
||||
CREATE TABLE INNODB_PAGE_COMPRESSED7 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=7;
|
||||
SHOW WARNINGS;
|
||||
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED7;
|
||||
CREATE TABLE INNODB_PAGE_COMPRESSED8 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=8;
|
||||
SHOW WARNINGS;
|
||||
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED8;
|
||||
CREATE TABLE INNODB_PAGE_COMPRESSED9 (c1 INT, b char(20)) ENGINE=INNODB PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=9;
|
||||
SHOW WARNINGS;
|
||||
SHOW CREATE TABLE INNODB_PAGE_COMPRESSED9;
|
||||
DELIMITER //;
|
||||
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//
|
||||
DELIMITER ;//
|
||||
COMMIT;
|
||||
create table innodb_compressed(c1 int, b char(20)) engine=innodb row_format=compressed key_block_size=8;
|
||||
show warnings;
|
||||
create table innodb_normal (c1 int, b char(20)) engine=innodb;
|
||||
show warnings;
|
||||
create table innodb_page_compressed1 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=1;
|
||||
show warnings;
|
||||
show create table innodb_page_compressed1;
|
||||
create table innodb_page_compressed2 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=2;
|
||||
show warnings;
|
||||
show create table innodb_page_compressed2;
|
||||
create table innodb_page_compressed3 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=3;
|
||||
show warnings;
|
||||
show create table innodb_page_compressed3;
|
||||
create table innodb_page_compressed4 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=4;
|
||||
show warnings;
|
||||
show create table innodb_page_compressed4;
|
||||
create table innodb_page_compressed5 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=5;
|
||||
show warnings;
|
||||
show create table innodb_page_compressed5;
|
||||
create table innodb_page_compressed6 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=6;
|
||||
show warnings;
|
||||
show create table innodb_page_compressed6;
|
||||
create table innodb_page_compressed7 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=7;
|
||||
show warnings;
|
||||
show create table innodb_page_compressed7;
|
||||
create table innodb_page_compressed8 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=8;
|
||||
show warnings;
|
||||
show create table innodb_page_compressed8;
|
||||
create table innodb_page_compressed9 (c1 int, b char(20)) engine=innodb page_compressed=1 page_compression_level=9;
|
||||
show warnings;
|
||||
show create table innodb_page_compressed9;
|
||||
delimiter //;
|
||||
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//
|
||||
delimiter ;//
|
||||
commit;
|
||||
|
||||
SET AUTOCOMMIT=0;
|
||||
CALL INNODB_INSERT_PROC(5000);
|
||||
COMMIT;
|
||||
SET AUTOCOMMIT=1;
|
||||
SELECT COUNT(*) FROM INNODB_NORMAL;
|
||||
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;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED1;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED1 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED2 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED3 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED4 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED5 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED6 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED7 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED8 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED9 WHERE C1 < 500000;
|
||||
set autocommit=0;
|
||||
call innodb_insert_proc(5000);
|
||||
commit;
|
||||
set autocommit=1;
|
||||
select count(*) from innodb_normal;
|
||||
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;
|
||||
select count(*) from innodb_page_compressed1;
|
||||
select count(*) from innodb_page_compressed1 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed2 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed3 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed4 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed5 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed6 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed7 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed8 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed9 where c1 < 500000;
|
||||
|
||||
ALTER TABLE INNODB_NORMAL PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=8;
|
||||
SHOW WARNINGS;
|
||||
SHOW CREATE TABLE INNODB_NORMAL;
|
||||
ALTER TABLE INNODB_COMPRESSED ROW_FORMAT=DEFAULT PAGE_COMPRESSED=1 PAGE_COMPRESSION_LEVEL=8 KEY_BLOCK_SIZE=0;
|
||||
SHOW WARNINGS;
|
||||
SHOW CREATE TABLE INNODB_COMPRESSED;
|
||||
alter table innodb_normal page_compressed=1 page_compression_level=8;
|
||||
show warnings;
|
||||
show create table innodb_normal;
|
||||
alter table innodb_compressed row_format=default page_compressed=1 page_compression_level=8 key_block_size=0;
|
||||
show warnings;
|
||||
show create table innodb_compressed;
|
||||
|
||||
|
||||
# NONE
|
||||
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;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED1;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED1 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED2 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED3 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED4 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED5 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED6 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED7 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED8 WHERE C1 < 500000;
|
||||
SELECT COUNT(*) FROM INNODB_PAGE_COMPRESSED9 WHERE C1 < 500000;
|
||||
# none
|
||||
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;
|
||||
select count(*) from innodb_page_compressed1;
|
||||
select count(*) from innodb_page_compressed1 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed2 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed3 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed4 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed5 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed6 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed7 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed8 where c1 < 500000;
|
||||
select count(*) from innodb_page_compressed9 where c1 < 500000;
|
||||
|
||||
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;
|
||||
|
||||
# reset system
|
||||
--disable_query_log
|
||||
|
Reference in New Issue
Block a user