在微博上看到隔壁部门的同事发布了一个介绍MySQL 5.6新特性的slide。遂对其中几个对我们业务有用的特性做了测试。 Found a slide which introducing new features in MySQL 5.6, which is made by a colleague in other department. For our business, I ran
在微博上看到隔壁部门的同事发布了一个介绍MySQL 5.6新特性的slide。遂对其中几个对我们业务有用的特性做了测试。
Found a slide which introducing new features in MySQL 5.6, which is made by a colleague in other department. For our business, I ran some tests on some features.
//压缩前(before compress) Name: workticket Engine: InnoDB Version: 10 Row_format: Compact Rows: 1471830 Avg_row_length: 328 Data_length: 483295232 Max_data_length: 0 Index_length: 260276224 Data_free: 5242880 Auto_increment: 3473533 Create_time: 2013-04-15 16:01:01 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: 工单表
//压缩后(after compress) Name: workticket Engine: InnoDB Version: 10 Row_format: Compressed Rows: 1553544 Avg_row_length: 143 Data_length: 222281728 Max_data_length: 0 Index_length: 121192448 Data_free: 2621440 Auto_increment: 3473533 Create_time: 2013-04-15 16:06:33 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: row_format=COMPRESSED Comment: 工单表
但还是不够myisampack后的myisam省空间
But InnoDB Compression is less storage efficient than MyISAM after myisampack.
-rw-rw---- 1 mysql mysql 9.5K Apr 16 09:35 workticket.frm -rw-rw---- 1 mysql mysql 9.5K Apr 16 09:45 workticket_innodb.frm -rw-rw---- 1 mysql mysql 336M Apr 16 09:58 workticket_innodb.ibd -rw-rw---- 1 mysql mysql 199M Apr 16 09:41 workticket.MYD -rw-rw---- 1 mysql mysql 86M Apr 16 09:44 workticket.MYI
Name: workticket Engine: MyISAM Version: 10 Row_format: Dynamic Rows: 1593851 Avg_row_length: 201 Data_length: 321325744 Max_data_length: 281474976710655 Index_length: 130242560 Data_free: 0 Auto_increment: 3473533 Create_time: 2013-04-16 09:35:53 Update_time: 2013-04-16 09:41:09 Check_time: 2013-04-16 09:37:03 Collation: utf8_general_ci Checksum: NULL Create_options: Comment: 工单表
mysql> ALTER TABLE `workticket` ADD COLUMN `test_col` INT NOT NULL AFTER sid, LOCK=NONE; Query OK, 0 rows affected (5 min 25.17 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> set old_alter_table=1; Query OK, 0 rows affected (0.00 sec) mysql> ALTER TABLE `workticket` ADD COLUMN `test_col` INT NOT NULL AFTER sid, LOCK=NONE; ERROR 1846 (0A000): LOCK=NONE is not supported. Reason: COPY algorithm requires a lock. Try LOCK=SHARED. mysql> ALTER TABLE `workticket` ADD COLUMN `test_col` INT NOT NULL AFTER sid, LOCK=SHARED; Query OK, 1593851 rows affected (4 min 11.89 sec) Records: 1593851 Duplicates: 0 Warnings: 0
虽然总体耗时更长,但DDL过程中不锁表(可query and/or 可DML)还是很吸引的(详细的DDL操作是否可query and/or 可DML可参见文档)。
Although costing more time, that the table can be query and/or execute DML query is very amazing. (Detail can be seen in documentation)
原文地址:MySQL 5.6新特性测试, 感谢原作者分享。