MySQL中InnoDB和MyISAM两个存储引擎的区别

InnoDB和MyISAM区别
1、InnoDB支持事务,MyISAM不支持事务,事务是一种高级的处理方式,如在一些列增删改中只要那个出错还可以回滚还原,而MyISAM不可以;
2、MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及涉及到安全性高的应用;
3、InnoDB支持外键,MyISAM不支持;
4、从MySQL5.5.5以后,InnoDB是默认引擎;
5、InnoDB不支持全文索引;
6、InnoDB不保存表的的行数,但是MyISAM只要简单的读出保存好的行数即可,当count语句包含where条件时MyISAM也需要扫描全表;
7、对于自增长的字段,InnoDB中必须包含该字段的索引,但在MyISAM表中可以和其他字段一起建立联合索引;
8、清空整个表时,InnoDB是一行一行的删除,效率非常慢,MyISAM会重建表;
9、InnoDB支持行锁,某些情况下还是会锁整个表update table set a=1 where user like '%lee%'
10、InnoDB和MyISAM都是B+树,但是它们的实现有点不一样,InnoDB是必须有主键的,主键建议用自增的id而不用uuid,用uuid会使索引变慢。InnoDB是聚簇索引(叶子节点存数据),MyISAM是非聚簇索引(叶子结点存指针)
 
原文地址:https://www.cnblogs.com/cexm/p/13435602.html