CREATE PROCEDURE populate_t1() BEGIN DECLARE i int DEFAULT 1; START TRANSACTION; WHILE (i <= 10000) DO INSERT INTO t1 VALUES (i, i, CONCAT('a', i)); SET i = i + 1; END WHILE; COMMIT; END| CREATE TABLE t1( class INT, id INT, title VARCHAR(100) ) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; SELECT COUNT(*) FROM t1; COUNT(*) 10000 CREATE INDEX idx_title ON t1(title); CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK SELECT * FROM t1 WHERE title = 'a10'; class id title 10 10 a10 SELECT * FROM t1 WHERE title = 'a5000'; class id title 5000 5000 a5000 SELECT * FROM t1 WHERE title = 'a10000'; class id title 10000 10000 a10000 SELECT * FROM t1 WHERE title = 'a10010'; class id title DROP TABLE t1; # Test Blob CREATE TABLE t1( a INT PRIMARY KEY, b TEXT, c TEXT) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; INSERT INTO t1 VALUES (1, REPEAT('a',10000), 'a'), (2, REPEAT('b',20000), 'b'), (3, REPEAT('c',40000), 'c'), (4, REPEAT('d',60000), 'd'); SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 ALTER TABLE t1 DROP COLUMN c; CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 DROP TABLE t1; CREATE TABLE t1( class INT, id INT, title VARCHAR(100) ) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; SET debug_dbug='+d,crash_commit_before'; CREATE INDEX idx_title ON t1(title); ERROR HY000: Lost connection to MySQL server during query SELECT COUNT(*) FROM t1; COUNT(*) 10000 CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK EXPLAIN SELECT * FROM t1 WHERE title = 'a10'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref idx_title idx_title 103 const 1 Using index condition SELECT * FROM t1 WHERE title = 'a10'; class id title 10 10 a10 SELECT * FROM t1 WHERE title = 'a5000'; class id title 5000 5000 a5000 SELECT * FROM t1 WHERE title = 'a10000'; class id title 10000 10000 a10000 SELECT * FROM t1 WHERE title = 'a10010'; class id title DROP TABLE t1; # Test Blob CREATE TABLE t1( a INT PRIMARY KEY, b TEXT, c TEXT) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; INSERT INTO t1 VALUES (1, REPEAT('a',10000), 'a'), (2, REPEAT('b',20000), 'b'), (3, REPEAT('c',40000), 'c'), (4, REPEAT('d',60000), 'd'); SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 SET debug_dbug='+d,crash_commit_before'; ALTER TABLE t1 DROP COLUMN c; ERROR HY000: Lost connection to MySQL server during query CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 DROP TABLE t1; DROP PROCEDURE populate_t1; CREATE PROCEDURE populate_t1() BEGIN DECLARE i int DEFAULT 1; START TRANSACTION; WHILE (i <= 10000) DO INSERT INTO t1 VALUES (i, i, CONCAT('a', i)); SET i = i + 1; END WHILE; COMMIT; END| CREATE TABLE t1( class INT, id INT, title VARCHAR(100) ) ENGINE=InnoDB ROW_FORMAT=COMPACT; SELECT COUNT(*) FROM t1; COUNT(*) 10000 CREATE INDEX idx_title ON t1(title); CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK SELECT * FROM t1 WHERE title = 'a10'; class id title 10 10 a10 SELECT * FROM t1 WHERE title = 'a5000'; class id title 5000 5000 a5000 SELECT * FROM t1 WHERE title = 'a10000'; class id title 10000 10000 a10000 SELECT * FROM t1 WHERE title = 'a10010'; class id title DROP TABLE t1; # Test Blob CREATE TABLE t1( a INT PRIMARY KEY, b TEXT, c TEXT) ENGINE=InnoDB ROW_FORMAT=COMPACT; INSERT INTO t1 VALUES (1, REPEAT('a',10000), 'a'), (2, REPEAT('b',20000), 'b'), (3, REPEAT('c',40000), 'c'), (4, REPEAT('d',60000), 'd'); SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 ALTER TABLE t1 DROP COLUMN c; CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 DROP TABLE t1; CREATE TABLE t1( class INT, id INT, title VARCHAR(100) ) ENGINE=InnoDB ROW_FORMAT=COMPACT; SET debug_dbug='+d,crash_commit_before'; CREATE INDEX idx_title ON t1(title); ERROR HY000: Lost connection to MySQL server during query SELECT COUNT(*) FROM t1; COUNT(*) 10000 CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK EXPLAIN SELECT * FROM t1 WHERE title = 'a10'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref idx_title idx_title 103 const 1 Using index condition SELECT * FROM t1 WHERE title = 'a10'; class id title 10 10 a10 SELECT * FROM t1 WHERE title = 'a5000'; class id title 5000 5000 a5000 SELECT * FROM t1 WHERE title = 'a10000'; class id title 10000 10000 a10000 SELECT * FROM t1 WHERE title = 'a10010'; class id title DROP TABLE t1; # Test Blob CREATE TABLE t1( a INT PRIMARY KEY, b TEXT, c TEXT) ENGINE=InnoDB ROW_FORMAT=COMPACT; INSERT INTO t1 VALUES (1, REPEAT('a',10000), 'a'), (2, REPEAT('b',20000), 'b'), (3, REPEAT('c',40000), 'c'), (4, REPEAT('d',60000), 'd'); SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 SET debug_dbug='+d,crash_commit_before'; ALTER TABLE t1 DROP COLUMN c; ERROR HY000: Lost connection to MySQL server during query CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 DROP TABLE t1; DROP PROCEDURE populate_t1; CREATE PROCEDURE populate_t1() BEGIN DECLARE i int DEFAULT 1; START TRANSACTION; WHILE (i <= 10000) DO INSERT INTO t1 VALUES (i, i, CONCAT('a', i)); SET i = i + 1; END WHILE; COMMIT; END| CREATE TABLE t1( class INT, id INT, title VARCHAR(100) ) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; SELECT COUNT(*) FROM t1; COUNT(*) 10000 CREATE INDEX idx_title ON t1(title); CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK SELECT * FROM t1 WHERE title = 'a10'; class id title 10 10 a10 SELECT * FROM t1 WHERE title = 'a5000'; class id title 5000 5000 a5000 SELECT * FROM t1 WHERE title = 'a10000'; class id title 10000 10000 a10000 SELECT * FROM t1 WHERE title = 'a10010'; class id title DROP TABLE t1; # Test Blob CREATE TABLE t1( a INT PRIMARY KEY, b TEXT, c TEXT) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; INSERT INTO t1 VALUES (1, REPEAT('a',10000), 'a'), (2, REPEAT('b',20000), 'b'), (3, REPEAT('c',40000), 'c'), (4, REPEAT('d',60000), 'd'); SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 ALTER TABLE t1 DROP COLUMN c; CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 DROP TABLE t1; CREATE TABLE t1( class INT, id INT, title VARCHAR(100) ) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; SET debug_dbug='+d,crash_commit_before'; CREATE INDEX idx_title ON t1(title); ERROR HY000: Lost connection to MySQL server during query SELECT COUNT(*) FROM t1; COUNT(*) 10000 CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK EXPLAIN SELECT * FROM t1 WHERE title = 'a10'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref idx_title idx_title 103 const 1 Using index condition SELECT * FROM t1 WHERE title = 'a10'; class id title 10 10 a10 SELECT * FROM t1 WHERE title = 'a5000'; class id title 5000 5000 a5000 SELECT * FROM t1 WHERE title = 'a10000'; class id title 10000 10000 a10000 SELECT * FROM t1 WHERE title = 'a10010'; class id title DROP TABLE t1; # Test Blob CREATE TABLE t1( a INT PRIMARY KEY, b TEXT, c TEXT) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; INSERT INTO t1 VALUES (1, REPEAT('a',10000), 'a'), (2, REPEAT('b',20000), 'b'), (3, REPEAT('c',40000), 'c'), (4, REPEAT('d',60000), 'd'); SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 SET debug_dbug='+d,crash_commit_before'; ALTER TABLE t1 DROP COLUMN c; ERROR HY000: Lost connection to MySQL server during query CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 DROP TABLE t1; DROP PROCEDURE populate_t1; CREATE PROCEDURE populate_t1() BEGIN DECLARE i int DEFAULT 1; START TRANSACTION; WHILE (i <= 10000) DO INSERT INTO t1 VALUES (i, i, CONCAT('a', i)); SET i = i + 1; END WHILE; COMMIT; END| SET GLOBAL innodb_file_per_table=1; CREATE TABLE t1( class INT, id INT, title VARCHAR(100) ) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; SELECT COUNT(*) FROM t1; COUNT(*) 10000 CREATE INDEX idx_title ON t1(title); CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK SELECT * FROM t1 WHERE title = 'a10'; class id title 10 10 a10 SELECT * FROM t1 WHERE title = 'a5000'; class id title 5000 5000 a5000 SELECT * FROM t1 WHERE title = 'a10000'; class id title 10000 10000 a10000 SELECT * FROM t1 WHERE title = 'a10010'; class id title DROP TABLE t1; # Test Blob SET GLOBAL innodb_file_per_table=1; CREATE TABLE t1( a INT PRIMARY KEY, b TEXT, c TEXT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; INSERT INTO t1 VALUES (1, REPEAT('a',10000), 'a'), (2, REPEAT('b',20000), 'b'), (3, REPEAT('c',40000), 'c'), (4, REPEAT('d',60000), 'd'); SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 ALTER TABLE t1 DROP COLUMN c; CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 DROP TABLE t1; SET GLOBAL innodb_file_per_table=1; CREATE TABLE t1( class INT, id INT, title VARCHAR(100) ) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; SET debug_dbug='+d,crash_commit_before'; CREATE INDEX idx_title ON t1(title); ERROR HY000: Lost connection to MySQL server during query SELECT COUNT(*) FROM t1; COUNT(*) 10000 CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK EXPLAIN SELECT * FROM t1 WHERE title = 'a10'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref idx_title idx_title 103 const 1 Using index condition SELECT * FROM t1 WHERE title = 'a10'; class id title 10 10 a10 SELECT * FROM t1 WHERE title = 'a5000'; class id title 5000 5000 a5000 SELECT * FROM t1 WHERE title = 'a10000'; class id title 10000 10000 a10000 SELECT * FROM t1 WHERE title = 'a10010'; class id title DROP TABLE t1; # Test Blob SET GLOBAL innodb_file_per_table=1; CREATE TABLE t1( a INT PRIMARY KEY, b TEXT, c TEXT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; INSERT INTO t1 VALUES (1, REPEAT('a',10000), 'a'), (2, REPEAT('b',20000), 'b'), (3, REPEAT('c',40000), 'c'), (4, REPEAT('d',60000), 'd'); SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 SET debug_dbug='+d,crash_commit_before'; ALTER TABLE t1 DROP COLUMN c; ERROR HY000: Lost connection to MySQL server during query CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) 10000 20000 40000 60000 DROP TABLE t1; SET GLOBAL innodb_file_per_table=default; DROP PROCEDURE populate_t1;