myISAM:不支持数据库事务,但是性能比innoDB强很多,如果你的数据库多表操作比较多,为了确保数据一致性,不建议使用myISAM引擎
innoDB:支持数据库事务,多表操作的数据一致性有保证,但是在性能方面和myISAM引擎比就差太多了
数据插入方面:

关于二者性能差距,在数据插入方面就体现的淋漓尽致,同样结构的表,使用存储过程的循环操作插入同样规则的数据,innoDB花了600秒+才插入不到8000条数据,被我手动结束了插入;而在myISAM表里面,只花了110多秒钟就插入了超过600w条数据,这个性能差距真是......额=_=,叼。
数据查询方面:
这里我使用的是myISAM引擎表来查询,在没有建立索引的情况下,从600w行查询一个指定的phone(有重复),结果如下:

在建立了phone字段的索引之后,再次使用该语句查表,结果如下:

暂时就酱,接着研究......
补充点,myISAM转innoDB之后的测试:
未索引的phone字段查询耗时:

索引后phone字段查询耗时:

补充测试,在myISAM引擎下,对于单个重复数据很多字段建立索引,查询性能并没有提升,反而下降;对id建立索引,然后在600w数据里limit100w条数据,性能不升反降。
网友评论