1.表
innodb_test
CREATE TABLE `innodb_test` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`city` varchar(255) DEFAULT NULL,
`status` mediumint(9) DEFAULT NULL,
`date` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `name_city_satus` (`name`,`city`,`status`)
) ENGINE=InnoDB AUTO_INCREMENT=1;
myisam_test** is just the same as innodb_test but with MyISAM engine.
2.我运行流式sql得到57行:
1( :
SELECT SQL_NO_CACHE * FROM innodb_test WHERE `name` LIKE 'H%' AND city LIKE 'O%' LIMIT 0, 10000;
2( :
SELECT SQL_NO_CACHE * FROM myisam_test WHERE `name` LIKE 'H%' AND city LIKE 'O%' LIMIT 0, 10000;
通过show profiling,第一个sql需要0.029,而另一个需要0.0069。
为什么他们有这么大的差异?
尝试将固定行格式添加到表中。
固定行格式的速度比动态格式提高了44%。
固定行格式的缺点是存储列所需的空间。更改为固定行格式将用空格填充任何可变长度列。但是,任何时候,以磁盘空间为代价进行性能权衡,性能都会胜出。
ALTER TABLE `innodb_test` ROW_FORMAT = FIXED
更多信息请点击此处