5.6.9-RC is out, and I was curious to see how the online DDL has improved since my 5.6.8 review. I also owe James Day this review, since he came up with results inconsistent with my own.
We both agreed the dataset I was using was too small, but I got similar results even on larger scale. Then some time passed, and 5.6.9 was announced.
So for the 5.6.9 test I took one of my real tables on production. It is not extremely large: it’s a ~ 300MB .ibd file, in the following format:
mysql> show create table tbl \G CREATE TABLE `tbl` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `a` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '', `w` smallint(11) NOT NULL DEFAULT '0', `d` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `icount` smallint(5) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`) KEY_BLOCK_SIZE=8, UNIQUE KEY `u_idx` (`a`,`w`,`d`) KEY_BLOCK_SIZE=8, KEY `d` (`d`) KEY_BLOCK_SIZE=8 ) ENGINE=InnoDB AUTO_INCREMENT=16960441 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16
Got some 2.5M rows in the table; desktop machine, 64 bit Linux, mysqlsandbox.
I have crossed several DDL statements with several DML statements. The DDL statements in this test are (ALTER TABLE…): Continue reading » “State of InnDB Online DDL in MySQL 5.6.9-RC (good news included)”