InnoDB与myIsam的认识

Diff:

  1、事务:innodb支持;myisam不支持。innodb默认每条sql为一个事务,这样操作会影响性能,所以建议自己根据业务,使用“begin……commit”来自己管理事务;

  2、外键:innodb支持;myisam不支持。注意:该特性会导致innodb表向myisam转失败;

  3、索引:innodb是聚集索引;myisam是非聚集索引。

    具体的参考文章:

  4、行数:innodb不记录行数;myisam记录行数。原因:innodb是事务隔离的,不同的事务看到的数据是有差别的。

  5、锁级别:innodb支持表、行(默认)锁;myisam支持表锁。注意:innodb的行锁是在索引上实现的,不是锁在具体的物理数据行上的。即如果索引没有命中索引,那么就只能使用表锁了。

  

where(使用场景)

  1、事务要求:innnodb支持事务,myisam不支持;

  2、读写:绝大多数是读操作,可以选择myisam;如果有读也有写,选择innodb;

  3、恢复速度:mysam崩溃后,恢复速度非常慢;

  4、默认选择innodb:如果前面几种还无法决定选什么,可以直接使用innodb。原因:mysql 5.5后默认使用innodb数据引擎了。

 

上一篇:BIO、NIO、AIO 详解和基于BIO模式下即时通信


下一篇:MySql中InnoDB锁注意事项