MyISAM 和 InnoDB 有什么区别?

  1. InnoDB支持事务,MyISAM不支持
  2. InnoDB 是聚集索引,MyISAM 是非聚集索引。InnoDB在MySQL5.6之前不支持全文索引
  3. InnoDB支持外键,MyISAM不支持
  4. InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁。
  5. InnoDB中不保存表的行数,但是MyISAM只要简单的读出保存好的行数即可
  6. 对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联合索引
  7. 清空整个表时,InnoDB是一行一行的删除,效率非常慢。MyISAM则会重建表
  8. InnoDB 支持数据库异常崩溃后的安全恢复,恢复的过程依赖于redo log。