Current Path : /home/usr.opt/mysql57/mysql-test/suite/innodb_zip/t/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //home/usr.opt/mysql57/mysql-test/suite/innodb_zip/t/cmp_per_index.test |
# # Test information_schema.innodb_cmp_per_index # -- source include/have_innodb.inc # Using innodb_log_compressed=0 leads to a larger number of page # compressions, because page_cur_insert_rec_zip() will reorganize the # page before attempting an insert followed by page compression and # page_zip_compress_write_log_no_data(). if (`SELECT @@innodb_log_compressed_pages = 0`) { --skip Needs innodb_log_compressed_pages } # numbers read in this test depend on the page size -- source include/have_innodb_16k.inc # include/restart_mysqld.inc does not work in embedded mode -- source include/not_embedded.inc -- vertical_results SET GLOBAL innodb_cmp_per_index_enabled=ON; # reset any leftover stats from previous tests -- disable_query_log -- disable_result_log SELECT * FROM information_schema.innodb_cmp_per_index_reset; -- enable_result_log -- enable_query_log # see that the table is empty SELECT * FROM information_schema.innodb_cmp_per_index; # create a table that uses compression CREATE TABLE t ( a INT, b VARCHAR(512), c VARCHAR(16), PRIMARY KEY (a), INDEX (b(512)), INDEX (c(16)) ) ENGINE=INNODB KEY_BLOCK_SIZE=2; SELECT database_name, table_name, index_name, compress_ops, compress_ops_ok, uncompress_ops FROM information_schema.innodb_cmp_per_index ORDER BY 1, 2, 3; # insert some data into it BEGIN; -- disable_query_log let $i=128; while ($i) { -- eval INSERT INTO t VALUES ($i, REPEAT('x', 512), NULL); dec $i; } -- enable_query_log COMMIT; ALTER TABLE t DROP INDEX c; GRANT USAGE ON *.* TO 'tuser01'@'localhost' IDENTIFIED BY 'cDJvI9s_Uq'; FLUSH PRIVILEGES; -- connect (con1,localhost,tuser01,cDJvI9s_Uq,) -- connection con1 -- error ER_SPECIFIC_ACCESS_DENIED_ERROR SELECT * FROM information_schema.innodb_cmp_per_index; -- connection default -- disconnect con1 DROP USER 'tuser01'@'localhost'; SELECT database_name, table_name, index_name, CASE WHEN compress_ops=47 and @@innodb_compression_level IN (4,8,9) THEN 65 ELSE compress_ops END as compress_ops, CASE WHEN compress_ops_ok=47 and @@innodb_compression_level IN (4,8,9) THEN 65 ELSE compress_ops_ok END as compress_ops_ok, uncompress_ops FROM information_schema.innodb_cmp_per_index ORDER BY 1, 2, 3; # restart mysqld and see that uncompress ops also gets increased when # selecting from the table again -- source include/restart_mysqld.inc SET GLOBAL innodb_cmp_per_index_enabled=ON; #Force table to use primary key CREATE TABLE tmp_table SELECT * FROM t; SELECT database_name, table_name, index_name, compress_ops, compress_ops_ok, CASE WHEN uncompress_ops=6 and @@innodb_compression_level IN (4,8,9) THEN 9 ELSE uncompress_ops END as uncompress_ops FROM information_schema.innodb_cmp_per_index where table_name = 't' ORDER BY 1, 2, 3; DROP TABLE t,tmp_table; SET GLOBAL innodb_cmp_per_index_enabled=default;