mysql主流引擎是InnoDB和myISAM。两者简单来说,InnoDB是行锁,支持事务;myISAM是表锁,不支持事务。具体理论上的区别,网上有很多说法,我这里不多说了。
这里做了一个试验,插入100w条数据,每1w条数据一批,用 insert into values (1万条) 的方式插入。记录插入数据的时间对比。
表结构如下:
插入时间对比情况如下:(时间单位:毫秒)
可以看出来,只是插入数据的话,myISAM速度是非常快的。
在50w数据以内,两者差别还在可接受范围内,innoDB花费的时间大概是myISAM的5~10倍。
在50w ~ 100w直接,这个差距就大的可怕了。
在100w以上,innoDB引擎的插入变得非常慢,已经试验不下去了。而myISAM引擎,插入时间基本上是线性增长的: