我有一个mysql表,其中有超过3000万条记录最初与myisam一起存储。下面是表的说明:Mysql中Innodb和Myisam之间的性能差异
我会跑反对此表下面的查询一般需时约30秒才能完成。我会每次更改@eid以避免数据库或磁盘缓存。
select count(fact_data.id)
from fact_data
where [email protected]
and fact_data.metric_id=1
我然后转换此表的InnoDB不进行任何其他更改,之后同样的查询第二,每一次我运行该查询返回下英寸即使当我随机设置@eid以避免缓存时,查询也会在一秒之内返回。
我一直在研究两种存储类型之间的差异,试图解释性能的戏剧性改进,但一直未能拿出任何东西。事实上,我读到的大部分内容都表明Myisam应该更快。
我正在运行的查询是针对本地数据库的,在测试时没有其他进程打到数据库。
创建一个新的MyISAM表并对该表进行计时的合理简单测试可以证实这种猜测。 – 2012-03-30 17:43:36